0

プロジェクトであるモデルのみが存在するアプリケーションを作成しています。プロジェクトのビューでは、自動的に生成される変数、つまり作成された _at と updated_at を含むテーブルを確認できます。updated_at 変数を追跡したいということは、ユーザーがプロジェクトを 10 回更新すると、updated_at 変数が 10 回表示され、プロジェクト モデルを追跡できるということです。

4

1 に答える 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 に答える