Ruby on rails rails控制器使用[column\u name]\u更改了吗?不行

Ruby on rails rails控制器使用[column\u name]\u更改了吗?不行,ruby-on-rails,ruby,model,controller,Ruby On Rails,Ruby,Model,Controller,控制器中的[column\u name]\u已更改?不工作,但在模型中是否正常 original_name = "test1" new_name = "test2" @user = User.find(params[:id]) puts"__________#{@user.name}" # "test1" @user.update_attributes(params[:user]) puts"__________#{@user.name}" # "test2" @user.name_chang

控制器中的
[column\u name]\u已更改?
不工作,但在模型中是否正常

original_name = "test1"
new_name = "test2"

@user = User.find(params[:id])
puts"__________#{@user.name}" # "test1"
@user.update_attributes(params[:user])
puts"__________#{@user.name}" # "test2"
@user.name_changed? # return false is't not work
从:

更新属性(属性,选项={})

从传入的散列更新模型的属性并保存记录,所有这些都包装在事务中

注意:保存记录部分。因此,在
update\u attributes
调用成功后,所有新值都已写入数据库,并且没有任何内容处于更改状态;因此,所有
x\u changed?
方法都将返回false

如果您想要类似于
更新\u属性
但不执行
保存
,则可以使用或:

方法就是这样:

with_transaction_returning_status do
  self.assign_attributes(attributes, options)
  save
end

毕竟。

我会实现这个功能,我应该怎么做?@s6520643:那么你想更新并另存为不同的步骤?使用
assign_attributes
和我的更新答案中的
save
一起使用。
with_transaction_returning_status do
  self.assign_attributes(attributes, options)
  save
end