您好我有一个Rails应用程序,我想知道是否更改了哈希中发生的属性 让我解释一下我有@user
的参数"foo"=> {"name"=> "name1", "age"=> "15", "height"=> "120"}
现在,当我只更改属性年龄时,我想知道年龄是否已更改
我尝试的是@user.foo_changed?
但是只要foo散列发生任何变化,它就会生效,但我希望只有在年龄改变时才真实。我怎样才能做到这一点?
答案 0 :(得分:1)
尝试:
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
答案 1 :(得分:0)
Ruby on Rails提供了一些方法来实现这一目标:
object.attribute_changed?
例如:
User.first.name_changed?
你试过这个吗?
@user.age_changed?
您可以找到更多here