这是代码:
def update
if @user.update_attributes(params[:user])
redirect_to my_account_path
else
redirect_to account_path
end
end
@user.update_attributes
应该返回true
或者false
当验证失败但它返回时nil
。
使用 Rails 3.1.2 和 Ruby 1.9.2。
这是代码:
def update
if @user.update_attributes(params[:user])
redirect_to my_account_path
else
redirect_to account_path
end
end
@user.update_attributes
应该返回true
或者false
当验证失败但它返回时nil
。
使用 Rails 3.1.2 和 Ruby 1.9.2。
模型上的 attr_accessible 设置?
http://apidock.com/rails/ActiveRecord/Persistence/update_attributes
有时当我遇到这样的问题时,我会将更改更新update_attributes
为update_attributes!
- 这可能会强制引发立即异常,并可以准确指出返回的值是错误保存的原因。
如果未保存数据,它应该返回 false。根据文档:
如果由于资源无效而导致保存失败,则将返回 false。
这是来自 rails 源代码的片段(请注意,在幕后update_attibutes
调用save
):
def save(*)
begin
create_or_update
rescue ActiveRecord::RecordInvalid
false
end
end
因此,它专门返回false
,而不是nil
在保存记录时出现问题。