我正在使用一个设计宝石进行签入/签出过程。
我生成的视图文件从设计,使用 rails g devise views
我看到有一个 design/session/new.html. erb 文件,其中包含一个登录表单。
我创建了另一个文件 design/session/_ form.html.erb,并在 new.html.erb 文件中执行了 <%= render 'form' %>
,结果非常好。
现在,我想在不同的控制器中包含这个表单。因此,在一个名为“ main”的控制器中,(特别是在视图页面中)“ mains/index.html。我包含了 <%= 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:
看起来表单 for (资源,...)部分引起了问题(如果我在原始设计登录页面上工作的很好... 我怎样才能解决这个问题在轨道的方式?
我个人更喜欢使用“ render”函数来包含表单,而不是内联编写 html 代码。
我必须在“主”控制器中指定某些东西(资源)吗?
我会很感激你的帮助,谢谢。