我正在使用一个设计性的gem来执行登录/登出过程。
我使用rails g devise views
从devise生成视图文件
我看到有一个devise/sessions/new.html.erb文件,其中包含一个sign_in表单。
我创建了另一个文件devise/sessions/_form.html.erb,并在一个new.html.erb文件中执行了<%= render 'form' %>
,效果非常好。
现在,我想包含来自不同控制器的表单。因此,在名为'main‘的控制器中(具体地说,在视图页面中) 'mains/index.html.erb’,我包含了<%= render 'devise/sessions/form' %>
文件。看起来inclusion运行得很好,但我得到了以下错误。
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(资源,...)部分导致了问题(如果我在原始的devise sign_in页面上,它工作得很好...我如何用rails的方式解决这个问题呢?
我个人更喜欢使用'render‘函数来包含表单,而不是编写内联的html代码。
我必须在'main‘控制器中指定一些东西(资源)吗?
我将感谢你的帮助。谢谢。
https://stackoverflow.com/questions/4081744
复制相似问题