我希望得到update_attributes中传递的所有属性,即使它们没有改变。
我的验证中有逻辑,如果有人通过X,我应该跳过逻辑。
在Rails 4.2.10中,我使用了original_raw_attributes
,但现在我正在升级Rails。
任何想法?
答案 0 :(得分:0)
我没有看到访问未更改属性的方法。解决方法可能是拦截update_attributes
并记住参数,例如:
class User < ApplicationRecord
def update_attributes(attrs)
@original_raw_attributes = attrs
super
end
before_validation do
pp @original_raw_attributes if @original_raw_attributes
end
end
使用它来显示未更新的属性的示例:
>> User.last.name
=> "tomc"
>> User.last.update_attributes name: "tomc"
{:name=>"tomc"}
你可能想把它放在Concern
中,但你明白了。