2016-10-12 3 views
0

私はこれをより良い方法で考えることができません申し訳ありません!ActiveModelの変更を偽装するか、列を模倣して模倣しますか?

最終的には、特定の属性リストが変更されたときに実行したい時間の99%をコールバックしています。しかし、2つのケースで私はreturn unless previous_changes & watched_attributesを渡すことができることを願っています。

特定の属性に変更を加える方法はありますか?どういうわけかmodel.attribute_changed?を本当に設定しますか?

私はmodel.touchを使用していますが、updated_atは意図的に無視したい列です。

答えて

0

はい、あなたはあなたが何かを試すことができ、変更方法

@object.changed #=> ['column_name'] 
0

を使用することによって変更された属性の配列を取得することができ、次のコマンド

@object.column_changed? #=> true 

を使用して、属性が変更されているかどうかを確認することができます次のようになります。

object.attribute_name_will_change! 
object.changed << :attribute_name 
puts object.attribute_name_changed? 
puts object.changed? 

出力結果は次のとおりです。

true 
true 

属性名は、属性の名前で置き換えられます。

関連する問題