J'utilise un joyau de devise pour les procédures sign_in / sign_out.
J'ai généré des fichiers de vues à partir de l'appareil, en utilisant rails g devise views
J'ai vu qu'il y avait un fichier devise / sessions / new.html.erb qui contenait un formulaire pour sign_in.
J'ai créé un autre fichier devise / sessions / _form.html.erb et l'ai fait <%= render 'form' %>
dans un fichier new.html.erb, et cela a très bien fonctionné.
Maintenant, je voulais inclure ce formulaire des différents contrôleurs. Donc, dans un contrôleur appelé «main», (en particulier, dans la page de vue) «mains / index.html.erb» j'ai inclus le <%= render 'devise/sessions/form' %>
fichier. Il semble que l'inclusion a bien fonctionné, mais j'obtiens l'erreur suivante.
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:
Il semble que la partie form_for (resource, ...) soit à l'origine du problème (ce qui fonctionne bien si je suis sur la page sign_in du périphérique d'origine ... Comment puis-je résoudre ce problème de manière rails?
Personnellement, je préfère utiliser la fonction «render» pour inclure le formulaire, plutôt que d'écrire des codes html en ligne.
Dois-je spécifier quelque chose (ressource) dans le contrôleur «principal»?
J'apprécierai votre aide. Je vous remercie.