0

モデル (ActiveRecord クラス) があるとします。

class Sample < ActiveRecord::Base
  attr_accessor :x1
end

そんなこと知ってる

Sample.last.x1 == 1 #true

私が設定Sample.last.x1 = 3した場合Sample.last.x1_was == 1 #true

しかし、x1 の値を再度設定すると、次のようになりSample.last.x1 = 8ますSample.last.x1_was == 3 #falseSample.last.x1 == 1 #true

その理由は推測できますが (Sample.last は変更後に保存されませんでした)、x1 の以前の値 (db 値ではない) を取得する方法を見つけたいと考えています。それを行う方法を提案できますか?

4

2 に答える 2

0

IT はすべてレールに組み込まれています。のドキュメントを参照してください。[ActiveRecord@dirty][1]

  person.name = 'Bob'
  person.changed?       # => true
  person.name_changed?  # => true
  person.name_was       # => 'uncle bob'
  person.name_change    # => ['uncle bob', 'Bob']
  person.name = 'Bill'
  person.name_change    # => ['uncle bob', 'Bill']
于 2013-04-04T13:54:24.780 に答える