Rails 4 - Omniahuth entwickeln (mehrere Strategien)

8

Ich versuche, eine App in Rails 4 zu erstellen. Ich habe in den letzten 3 Jahren versucht (außer für 10 Tage), um das Gerät zur Arbeit zu bringen.

Ich versuche, diesem Tutorial zu folgen: Ссылка

Bitte empfehle andere Tutorials / Gem-Dokumentation nicht. Ich habe mindestens 30 andere Tutorials ausprobiert und die Schmuckdokumentation ist voller Fehler und Komponenten, die ich nicht verstehe.

Mein aktuelles Problem ist, dass wenn ich in diesem Tutorial an den Ziel-Registrierungsschritt komme, das Formular mich nach meiner E-Mail-Adresse fragt.

Der Benutzer-Controller verfügt über eine Anmeldemethode für die Beendigung wie folgt:

%Vor%

Wenn ich das versuche, bekomme ich diesen Fehler:

%Vor%

Der Fehler zeigt auf diese Zeile:

%Vor%

Meine Entwicklungsumgebung ist so eingerichtet, dass sie alle Konfigurationsdetails für meinen E-Mail-Absender enthält.

Wenn ich den gleichen Schritt im Produktionsmodus versuche, bekomme ich diesen Fehler:

%Vor%

Es sucht nach einer Profil-ID, weil ich in meinem Benutzermodell eine after_create-Aktion wie folgt habe:

%Vor%

Mein anderes Problem mit diesem Lernprogramm ist, dass die Felder in der Identitätstabelle nicht ausgefüllt werden.

Ich würde gerne jemanden finden, der dieses Tutorial erfolgreich implementiert hat oder sehen kann, wie es funktioniert.

Mein Code ist:

gemfile

%Vor%

Routen

%Vor%

user.rb

class Benutzer & lt; ActiveRecord :: Base

%Vor%

Benutzer-Controller

%Vor%

omniauth Callback-Controller

%Vor%

Registrations Controller

%Vor%

Identität.rb

%Vor%

Identitätscontroller

%Vor%

Entwerfen Mailer - Bestätigung

%Vor%

ZUSAMMENFASSUNG DER AKTUELLEN PROBLEME:

  1. Im Entwicklungsmodus: Es besteht ein Problem mit der Verbindung zum Bestätigungstoken. Ich kann keine Materialien finden, die anzeigen, warum dies auftreten könnte. Der Fehler ist: (ActionView :: Template :: Error (undefinierte Methode 'match' für {: host = & gt; "localhost",: port = & gt; 3000}: Hash):

  2. Im Produktionsmodus gibt es einen Fehler beim Suchen des Benutzers nach der Profil-ID. Die Fehlermeldung lautet: ActionView :: Template :: Error (Keine Route stimmt überein {: action = & gt; "show",: controller = & gt; "Profile",: id = & gt; nil} fehlende erforderliche Schlüssel: [: id] ):

Meine Profilrouten sind:

%Vor%
  1. Keines der Felder im Identitätsmodell wird ausgefüllt. Sie zeigen alle als null.

DINGE, DIE WIE IM TUTORIAL ABGEGEBEN WERDEN:

  1. Ich erlaube auch die E-Mail-Anmeldung

  2. Ich füge 'finish_sign_up' zu set_user vor der Aktion im Benutzer-Controller hinzu

  3. Ich füge g + Strategie hinzu (was bedeutet, dass meine Edelsteine ​​etwas anders sind)

  4. Meine neue Benutzermethode verwendet keine Rohdaten. Es verwendet oauth verarbeitete Informationen.

  5. Meine Weiterleitung in der Anmeldemethode ist etwas anders, obwohl ich das auskommentiert habe und zurück zu der im Tutorial beschriebenen Art und Weise gegangen bin, um zu versuchen, dass das funktioniert (obwohl die obigen Probleme sind Wiederholen).

Ich werde verrückt versuchen, diese Probleme zu lösen. Ich würde sagen, 3 Jahre sind viel zu lang, um an diesem Problem festzuhalten. Wenn jemand helfen kann, würde ich es 10x und dann einige zahlen. Danke.

    
Mel 08.01.2016, 09:05
quelle

1 Antwort

1
%Vor%

Versuchen Sie resource anstelle von @resource . AFAIK ist es nur eine helper_method, KEINE Instanzvariable.

Ich denke, das wird Ihr Problem in der Produktion vollständig lösen. Da @resource nicht mit resource identisch ist, wurde es nicht festgelegt, und Sie rufen im Grunde confirmation_url(nil, confirmation_token: @token) auf, und nil wird an die Fehlermeldung weitergeleitet.

In der Entwicklung scheint ein zusätzliches Problem zu sein, das höchstwahrscheinlich damit zu tun hat, wie Sie config.action_mailer.default_url_options in config/environments/development.rb konfiguriert haben und höchstwahrscheinlich die Ausnahme in ActionDispatch::Http::Url.build_host_url . Ich vermute, du hast etwas wie:

%Vor%

Ändern Sie das zu:

%Vor%

Und ob das alles löst. Wenn ich falsch bin, wie config.action_mailer.default_url_options konfiguriert ist, fügen Sie bitte Ihre config/environments/development.rb UND eine vollständige Stack-Ablaufverfolgung von Ihrem Entwicklungsfehler ein, damit wir Ihnen weiterhelfen können.

    
Isaac Betesh 18.01.2016 02:17
quelle

Tags und Links