I am using a devise gem for sign_in/sign_out procedures.
I generated views files from devise, using rails g devise views
I saw there was a devise/sessions/new.html.erb file which contained a form for sign_in.
I created another file devise/sessions/_form.html.erb and did <%= render 'form' %>
within a new.html.erb file, and that worked out very fine.
Now, I wanted to include this form from the different controller. So in a controller called 'main', (specifically, within view page) 'mains/index.html.erb' I included <%= render 'devise/sessions/form' %>
file. It seems that inclusion worked fine, but I am getting the following error.
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:
It seems that form_for(resource,...) part is causing the problem (which works fine if I am on the original devise sign_in page... How can I resolve this problem in rails way?
I personally prefer to use 'render' function to include the form, rather than writing html codes inline.
Do I have to specify something (resource) within the 'main' controller?
I will appreciate your help. Thank you.