Ruby on rails 4 activerecord userstamp gem不工作
我试图将rails 3.x更新为4.2.x,并试图用activerecord userstamp替换userstamp gem,以存储创建者和更新者ID 我遵循了github中activerecord userstamp gem提供的所有步骤,并正确配置了gemRuby on rails 4 activerecord userstamp gem不工作,ruby-on-rails-4,activerecord,rubygems,Ruby On Rails 4,Activerecord,Rubygems,我试图将rails 3.x更新为4.2.x,并试图用activerecord userstamp替换userstamp gem,以存储创建者和更新者ID 我遵循了github中activerecord userstamp gem提供的所有步骤,并正确配置了gem ActiveRecord::Userstamp.configure do |config| # config.default_stamper = 'User' # config.creator_attribut
ActiveRecord::Userstamp.configure do |config|
# config.default_stamper = 'User'
# config.creator_attribute = :creator_id
# config.updater_attribute = :updater_id
config.deleter_attribute = nil
end
在我重置数据库并执行迁移之后
但我的模式仍然没有更新为creator\u id、updater\u id
t.integer "created_by", limit: 4
t.integer "updated_by", limit: 4
在my model user.rb中
class User < ActiveRecord::Base
model_stamper
end
任何人都可以为您的解决方案提供帮助吗?Activerecord userstamp在我运行迁移时加载MigrationHelper失败。我通过将迁移助手添加到repo中并在迁移文件中使用此助手方法解决了此问题 helper/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
在我的迁移文件中,我将该helper方法包括为
db/migration/yyy.rd
include activeRecorduserstamp
class YYY < ActiveRecord::Migration
def change
change_table :YYY do |t|
t.userstamps
end
包含activeRecorduserstamp
类YYY
将助手方法添加到迁移文件后,Activerecord Userstamp工作得很好
提及
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
include activeRecorduserstamp
class YYY < ActiveRecord::Migration
def change
change_table :YYY do |t|
t.userstamps
end