Ruby on rails 如何使用RubyonRails2.3.9更新数据库属性
我正在处理一个控制器操作,我想做的是修改数据库中的记录 我有以下代码:Ruby on rails 如何使用RubyonRails2.3.9更新数据库属性,ruby-on-rails,update-attributes,Ruby On Rails,Update Attributes,我正在处理一个控制器操作,我想做的是修改数据库中的记录 我有以下代码: def save_reserve @pnr = Pnr.find_by_email(params[:pnr][:email]) if (!@pnr.blank?) @pnr.update_attributes(params[:pnr]) else @pnr = Pnr.new(params[:pnr]) if @pnr.save ...
def save_reserve
@pnr = Pnr.find_by_email(params[:pnr][:email])
if (!@pnr.blank?)
@pnr.update_attributes(params[:pnr])
else
@pnr = Pnr.new(params[:pnr])
if @pnr.save
...
else
...
end
end
end
为什么@pnr.update_属性(params[:pnr])
不起作用
但是,如果我这样做:
@pnr.update_attribute(:name, params[:pnr][:name])
@pnr.update_attribute(:lastname, params[:pnr][:lastname])
@pnr.update_attribute(:phone, params[:pnr][:phone])
@pnr.update_attribute(:addr, params[:pnr][:addr])
它是有效的。。。我错过什么了吗
谢谢大家!
model.update_attributes(hsh)
实际上与调用model.attributes=hsh相同;model.save
-它受对象上任何回调和验证的影响
model.update\u属性(字段,值)
直接更新数据库中的该字段,而无需运行任何回调或验证
如果您检查
@pnr.update_attributes(params[:pnr])
的返回值,您可能会看到它是false
。你应该有一个if[…]
检查,方法与你在cose的新分支中对保存调用的方法相同。更新属性(hsh)
实际上与调用model.attributes=hsh相同;model.save
-它受对象上任何回调和验证的影响
model.update\u属性(字段,值)
直接更新数据库中的该字段,而无需运行任何回调或验证
如果您检查@pnr.update_attributes(params[:pnr])
的返回值,您可能会看到它是false
。您应该有一个if[…]
检查此问题,方法与您在cose的new
分支中执行save
调用相同