プロジェクトであるモデルのみが存在するアプリケーションを作成しています。プロジェクトのビューでは、自動的に生成される変数、つまり作成された _at と updated_at を含むテーブルを確認できます。updated_at 変数を追跡したいということは、ユーザーがプロジェクトを 10 回更新すると、updated_at 変数が 10 回表示され、プロジェクト モデルを追跡できるということです。
1 に答える
0
時間の経過に伴う変更を追跡し、プロジェクトモデルが作成されるたびにアクティブなレコードのコールバックを使用するには、別のモデルが必要になります。
ProjectChangesというモデルを使用して変更を追跡しているとします。
rails g model ProjectChange project_id:integer change:string when:datetime
次に、プロジェクトモデルにコールバックフックを実装します
class Project < ActiveRecord::Base
has_many :project_changes
after_create :record_update( 'create' )
after_save :record_update( 'update' )
...
def record_update( what_happened )
# not forgetting to add attr_accessible to the ProjectChange class if you want to mass assign like this
ProjectChange.new( { :change => what_happened, :when => Time.now } )
end
end
于 2012-11-06T11:07:37.470 に答える