1

我有一个带有功能齐全的登录/注册表格的设计用户表。

我想知道的是如何让用户表单出现在不同的表格上。

例如

users/sign_in 完美运行,但我想让该表单出现在电影/索引中

我尝试将表单代码添加到电影/索引中,但出现此错误

undefined local variable or method `resource' for #<#<Class:0x00000102cbf0b8>:0x00000103bb6d78>

这是签到表格

<%= form_for(resource, :as => resource_name, :url => session_path(resource_name)) do |f|     %>
  <div><%= f.label :email %>
  <%= f.email_field :email, :autofocus => true %></div>

  <div><%= f.label :password %>
  <%= f.password_field :password %></div>

  <% if devise_mapping.rememberable? -%>
    <div><%= f.check_box :remember_me %> <%= f.label :remember_me %></div>
  <% end -%>

  <div><%= f.submit "Sign in" %></div>
<% end %>

<%= render "devise/shared/links" %>

谢谢!

4

1 回答 1

0

您可以生成视图(我知道您已经这样做了)并且您可以覆盖控制器,或者,在您的情况下,您可以观看 Devise 的控制器,获取您需要的代码,并在您的视图中调用部分(来自设计视图)。

几个月前我做了类似的事情,但是我所做的(我没有完全建议,但我没有找到更好的方法)是从 Devise 视图中获取代码,然后将代码复制到另一个视图中一些修改:

<%= form_for(User.new, :as => "user", :url => session_path("user"), :remote => true) do |f| %>
  <div><%= f.label :email %><br />
  <%= f.email_field :email %></div>

  <div><%= f.label :password %><br />
  <%= f.password_field :password %></div>

    <div><%= f.check_box :remember_me %> <%= f.label :remember_me %></div>

  <div><%= f.submit "Sign in" , :class=>"blue_submit_degradiant", :id =>"sign_in_user"%></div>
<% end %>

它有效,但正确的方法是使用 @user 而不是 User.new

于 2013-03-31T22:34:11.950 回答