2017-11-22 8 views
-1

update_attributesで渡されたすべての属性を変更しない場合でも取得したい。検証でupdate_attributes属性をレンダリングする

誰かがXを渡すと論理をスキップしなければならないという私の検証には論理があります。

私はoriginal_raw_attributesを使用しましたが、今はRailsをアップグレードしています。

+0

-1の理由は何ですか? – Yosi

答えて

0

変更されていない属性にアクセスする方法はありません。この問題を回避するには、例えば、update_attributesを傍受し、引数をmemoizeするかもしれません:

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に入れてください。しかし、あなたはそのアイデアを得ます。

関連する問題