我正在将一个devise gem用于sign_in / sign_out过程。
我使用以下方法从devise生成了视图文件 rails g devise views
我看到有一个devise / sessions / new.html.erb文件,其中包含sign_in的表单。
我创建了另一个文件devise / sessions / _form.html.erb,并<%= render 'form' %>
在new.html.erb文件中进行了工作,效果很好。
现在,我想包含来自其他控制器的此表单。因此,在名为“ main”的控制器(特别是在视图页面内)中的“ mains / index.html.erb”中,我包含了<%= render 'devise/sessions/form' %>
文件。似乎包含工作正常,但出现以下错误。
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:
似乎form_for(resource,...)部分引起了问题(如果我在原始的dev_sign_in页面上,此方法很好...如何以Rails方式解决此问题?
我个人更喜欢使用“渲染”功能来包含表单,而不是内联编写html代码。
我是否必须在“主”控制器中指定某些内容(资源)?
感谢您的帮助。谢谢。