Ich verwende ein Juwel für sign_in / sign_out-Prozeduren.
Ich habe Views-Dateien von devise mit generiert rails g devise views
Ich habe gesehen, dass es eine Datei devise / session / new.html.erb gibt, die ein Formular für sign_in enthält.
Ich habe eine andere Datei devise / session / _form.html.erb erstellt und dies <%= render 'form' %>
in einer new.html.erb-Datei getan, und das hat sehr gut funktioniert.
Jetzt wollte ich dieses Formular von den verschiedenen Controllern einfügen. Also habe ich in einem Controller namens 'main' (speziell innerhalb der Ansichtsseite) 'mains / index.html.erb' eine <%= render 'devise/sessions/form' %>
Datei eingefügt . Es scheint, dass die Aufnahme gut funktioniert hat, aber ich erhalte den folgenden Fehler.
NameError in Mains#index
Showing /home/administrator/Ruby/site_v4_ruby/app/views/devise/sessions/_form.html.erb where line #1 raised:
undefined local variable or method `resource' for #<#<Class:0x007f1aa042d530>:0x007f1aa042b870>
Extracted source (around line #1):
1: <%= form_for(resource, :as => resource_name, :url => session_path(resource_name)) do |f| %>
2: <p><%= f.label :email %><br />
3: <%= f.text_field :email %></p>
4:
Es scheint, dass der Teil form_for (resource, ...) das Problem verursacht (was gut funktioniert, wenn ich mich auf der ursprünglichen Anmeldeseite des Geräts befinde ... Wie kann ich dieses Problem auf Schienen lösen?
Ich persönlich bevorzuge die Verwendung der Renderfunktion, um das Formular einzuschließen, anstatt HTML-Codes inline zu schreiben.
Muss ich im Hauptcontroller etwas (Ressource) angeben?
Ich werde Ihre Hilfe schätzen. Danke dir.