【发布时间】:2010-09-04 19:04:34
【问题描述】:
我来自 Grails,并且是 Ruby-on-Rails 的新手。
所以,我了解到,当您创建一个带有 :user("key") 之类的符号的 form_for 时,提交 params[] 时会收到一个带有“:user”的新密钥及其相应的值:
<% form_for :user do |form| %>
<fieldset>
<legend>Password</legend>
<label for="current_password"> Current password:</label>
<%= form.password_field :current_password %>
<br>
<label for="password"> New password:</label>
<%= form.password_field :password %>
<br>
<label for="password_confirmation"> Confirm password:</label>
<%= form.password_field :password_confirmation %>
<br>
</fieldset>
<%= submit_tag "Update", :class => "submit" %>
<% end %>
params[:user => {:current_password => 123 , :password => 321 , :password_confirmation => 321}],对吗?
嗯,问题是 Rails 不理解 :current_password 和 :password_confirmation ,我不知道是不是模型用户没有这些属性,只有姓名、密码和电子邮件。
错误:# 的未定义方法 `password_confirmation='
是否有另一种方法可以在不为两个符号创建 attr_accessor 的情况下修复它?我只想在操作中使用一个简单的键,例如:
if params[:user].password = params[:user].password_confirmation
do something...
【问题讨论】:
-
在 Rails 最受欢迎的书中,他们使用 attr_accessor 来确认密码。无论如何,在将其传递给模型更新方法之一之前,您始终可以从哈希中删除该键。
标签: ruby-on-rails