我有一个Rails应用程序,允许用户创建一个帐户(由设计处理)。我有一个自定义的登录表单在网站的标题。问题是表单中的电子邮件字段是自动用show页面中显示的User的电子邮件地址填充的。
例如:浏览网站,登出后进入Jim的个人资料页面。登录表单中的email字段将显示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
有什么办法解决这个问题吗?谢谢!
您需要将页面上的实例变量更改为@user以外的其他变量。它与您正在使用的form_for:user冲突,因为它创建或使用具有相同名称的实例变量。由于您有一个@user变量,因此它使用该变量并填充记录上的字段。