2016-10-24 31 views
2

4.2.xにrails 3.xを更新しようとしています。私は、userstamp gemをactiverecord-userstampに置き換えて、作成者とアップデータIDを保存しようとしています。私は、データベースをリセットして、移行にactiverecord-userstamp gemが動作していません

をしましたが、それでも私のスキーマがcreator_idするように更新されていない、

をupdater_idした後、私はきちんと

ActiveRecord::Userstamp.configure do |config| 
    # config.default_stamper = 'User' 
    # config.creator_attribute = :creator_id 
    # config.updater_attribute = :updater_id 
    config.deleter_attribute = nil 
    end 

すべてのGitHubでのActiveRecord-userstamp宝石が提供するステップと、設定された宝石を踏襲

私のモデルuser.rbで

私collections.rb

 class Collection < ActiveRecord::Base 
     stampable 
     end 

私はそれをデータベースに格納しないcreator_idと更新IDを格納しよう

| created_id | updated_id | 
+----+--------+-----------+- 
| NULL  |  NULL | 

ことができますあなたのソリューションとのいずれかの助け

答えて

0

のActiveRecord移行中に-userstampがMigrationHelperの読み込みに失敗しました。この問題は、マイグレーションヘルパーをレポに追加し、マイグレーションファイルでこのヘルパーメソッドを使用することで解決しました。私の移行で

ヘルパー/ activerecorduserstamp.rb

module activeRecorduserstamp 

    module ActiveRecord::Userstamp::MigrationHelper 
    extend ActiveSupport::Concern 

    def userstamps(*args) 
     config = ActiveRecord::Userstamp.config 
     column(config.creator_attribute, :integer, *args) 
     column(config.updater_attribute, :integer, *args) 
     column(config.deleter_attribute, :integer, *args) if config.deleter_attribute.present? 
    end 
end 

    ActiveRecord::ConnectionAdapters::TableDefinition.class_eval do 
    include ActiveRecord::Userstamp::MigrationHelper 
    end 
end 

は私が

私にヘルパーメソッドを追加した後のdb /移動/ yyy.rd

include activeRecorduserstamp 
class YYY < ActiveRecord::Migration 
    def change 
     change_table :YYY do |t| 
     t.userstamps 
    end 

ように、そのヘルパーメソッドをインクルードファイルマイグレーションファイル.Activerecord-Userstampは素晴らしい仕事です。

github issue

関連する問題