J'utilise une gemme devise pour les procédures d'inscription et de départ.
J'ai généré des fichiers de vues à partir de devise, en utilisant rails g devise views
J'ai vu qu'il y avait un fichier devise/sessions/new.html.erb qui contenait un formulaire d'inscription.
J'ai créé un autre fichier devise/sessions/_form.html.erb et fait <%= render 'form' %>
dans un fichier new.html.erb, et cela a très bien fonctionné.
Maintenant, je voulais inclure ce formulaire à partir d'un autre contrôleur. Ainsi, dans un contrôleur appelé 'main', (spécifiquement, dans la page de vue) 'mains/index.html.erb' j'ai inclus <%= render 'devise/sessions/form' %>
dossier. Il semble que l'inclusion ait bien fonctionné, mais je reçois 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 (qui fonctionne bien si je suis sur la page d'inscription originale de devise...). Comment puis-je résoudre ce problème en utilisant des rails ?
Je préfère personnellement 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. Merci.