我希望用户名也是电子邮件,但我不想从用户那里得到两次值,所以我把它保存为隐藏字段,我尝试如下所示,它没有取值
<div><%= f.label :email %><br />
<%= f.text_field :email %></div>
<div><%= f.hidden_field :username :value => :email%></div>
那么如何才能获得电子邮件的价值并在用户名字段中输入相同的值。请帮帮我。
答案 0 :(得分:2)
在使用它们之前控制器中的params[:user][:username] = params[:user][:email]
之类的东西会起作用......你可能宁愿在模型中加入这样的东西:
before_validation(:on => :create) do
self.username = self.email
end
或(也在模型中):
def username
email
end
但您可能更愿意问自己为什么有两个完全相同的引用?似乎它过于复杂了,为什么不完全丢失用户名?