Ruby on rails Rails在验证中更新_属性

Ruby on rails Rails在验证中更新_属性,ruby-on-rails,rails-activerecord,Ruby On Rails,Rails Activerecord,我想获得在update_属性中传递的所有属性,即使它们没有更改 我的验证中有一个逻辑,如果有人通过了X,我应该跳过逻辑 在Rails 4.2.10中,我使用了原始属性,但现在我正在升级Rails 有什么想法吗?我看不到访问未更改属性的方法。解决方法可能是截取更新_属性并记忆参数,例如: class User < ApplicationRecord def update_attributes(attrs) @original_raw_attributes = attrs

我想获得在update_属性中传递的所有属性,即使它们没有更改

我的验证中有一个逻辑,如果有人通过了X,我应该跳过逻辑

在Rails 4.2.10中,我使用了原始属性,但现在我正在升级Rails


有什么想法吗?

我看不到访问未更改属性的方法。解决方法可能是截取更新_属性并记忆参数,例如:

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

你可能想把它放在一个问题中,但你明白了。

有什么理由-1吗?
>> User.last.name
=> "tomc"
>> User.last.update_attributes name: "tomc"
{:name=>"tomc"}