在Rails应用程序中查看用户配置文件页面时自动填写电子邮件字段

时间:2014-03-25 22:59:20

标签: ruby-on-rails ruby-on-rails-3 forms email devise

我有一个允许用户创建帐户的Rails应用程序(由Devise处理)。我在网站的标题中有一个自定义登录表单。问题是表单中的电子邮件字段会自动填入显示页面中显示的用户的电子邮件地址。

例如:浏览网站,登出时登陆Jim的个人资料页面。登录表单中的电子邮件字段将显示Jim的电子邮件地址。

这是一个非常奇怪的错误,只有当您查看特定的用户个人资料页面时才会发生这种情况。这是标题中的登录表单:

<%= form_for(:user, :url => session_path(:user)) do |f| %>
      <%= f.text_field :email, :style => "width:125px;", :placeholder => "email" %>
      <%= f.password_field :password, :style => "width:125px;", :placeholder => "password" %>
      <%= f.check_box :remember_me %><%= f.label :remember_me, :class => "checkbox inline", :style => "color: white; font-size: 12px" %>  
      <%= f.submit 'Log in', :class => "btn btn-primary btn-small" %>
      <%= link_to "Forgot password?", new_password_path(:user), :style => "font-size: 12px; color: white" %>

我使用本指南创建了上述表单:

https://github.com/plataformatec/devise/wiki/How-To:-Display-a-custom-sign_in-form-anywhere-in-your-app

有关如何解决此问题的任何想法?谢谢!

1 个答案:

答案 0 :(得分:1)

您需要将页面上的实例变量更改为@user以外的其他变量。它与您正在使用的form_for:user冲突,因为它创建或使用具有相同名称的实例变量。由于你有一个@user变量,它使用它并填充它记录的字段。