Rails检查变量是否与记录不同

时间:2017-03-25 15:53:34

标签: ruby-on-rails ruby activerecord

我想看看我的变量是否与数据库中的相应记录不同。我知道'attribute'_changed? method,但只有通过变量更新记录才有效。

实施例

user = User.first # name = bar
u.update(name: "foo")
u.name_changed? # => true

然而,在这种情况下(例如集成测试)

u = User.first # name = bar
User.first.update(name: "foo")
u.name # => 'bar'
u.name_changed? #false
u.reload
u.name_changed #false

我想检查我的变量 u 是否与某些属性中的User.first不同,后者并未通过它进行更改。

1 个答案:

答案 0 :(得分:1)

没有任何内置功能。您所能做的就是从数据库加载另一个用户并比较他们的属性。

SELECT
C.query('./garColText') As cText
, C.query('./garColVal') As cVal
FROM @XML.nodes('//garColumn') as garC(C)