Ruby Rails 检测更新中属性的变化
Ruby on Rails detect changes in attributes in update
您好,我有一个 Rails 应用程序,我想知道在哈希中发生的属性是否发生更改
让我解释一下,我有@user
的参数
"foo"=> {"name"=> "name1", "age"=> "15", "height"=> "120"}
现在,当我只更改属性年龄时,我想知道年龄是否已更改
我尝试的是@user.foo_changed?
,但只要 foo 哈希值发生任何变化,它就会给出 true,但我希望它仅在 age 更改时为 true。我怎样才能做到这一点?
Ruby on Rails 提供一些方法来做到这一点:
object.attribute_changed?
例如:
User.first.name_changed?
你试过吗?
@user.age_changed?
您可以找到更多 here
尝试:
if @user.foo.age == params[:user][:foo][:age]
# not changed
else
# changed
end
或
@user.foo.age_changed? # this will work in case foo is associated(nested) model with user and foo table has "age" field
您好,我有一个 Rails 应用程序,我想知道在哈希中发生的属性是否发生更改 让我解释一下,我有@user
的参数"foo"=> {"name"=> "name1", "age"=> "15", "height"=> "120"}
现在,当我只更改属性年龄时,我想知道年龄是否已更改
我尝试的是@user.foo_changed?
,但只要 foo 哈希值发生任何变化,它就会给出 true,但我希望它仅在 age 更改时为 true。我怎样才能做到这一点?
Ruby on Rails 提供一些方法来做到这一点:
object.attribute_changed?
例如:
User.first.name_changed?
你试过吗?
@user.age_changed?
您可以找到更多 here
尝试:
if @user.foo.age == params[:user][:foo][:age]
# not changed
else
# changed
end
或
@user.foo.age_changed? # this will work in case foo is associated(nested) model with user and foo table has "age" field