【发布时间】:2015-08-01 20:59:11
【问题描述】:
我正在将mongoid-history gem 添加到我的项目中。
根据in github 的指导,当我将Userstamp 添加到我的跟踪器时,它会创建created_by 字段,其访问器名为creator。
他们写道,我可以通过 gem config 重命名它。
如何重命名此字段?
【问题讨论】:
标签: ruby-on-rails ruby mongoid
我正在将mongoid-history gem 添加到我的项目中。
根据in github 的指导,当我将Userstamp 添加到我的跟踪器时,它会创建created_by 字段,其访问器名为creator。
他们写道,我可以通过 gem config 重命名它。
如何重命名此字段?
【问题讨论】:
标签: ruby-on-rails ruby mongoid
根据文档,Userstamp 是另一个名为 mongoid_userstamp 的 gem。文档提供了通过配置文件或在每个模型内部配置名称的示例代码:
config/mongoid_userstamp.rb:
# Default config (optional unless you want to customize the values)
Mongoid::Userstamp.config do |c|
c.user_reader = :current_user
c.created_name = :created_by
c.updated_name = :updated_by
end
app/models/your_model.rb
# Example model class
class Product
include Mongoid::Document
include Mongoid::Userstamp
# optional class-level config override
# mongoid_userstamp user_model: 'MyUser',
# created_name: :creator,
# updated_name: :updater,
end
# Example user class
class MyUser
include Mongoid::Document
include Mongoid::Userstamp::User
# optional class-level config override
# mongoid_userstamp_user reader: :current_my_user
end
在 Mongoid History 中,您可以在 HistoryTracker 类中包含配置,例如:
# app/models/history_tracker.rb
class HistoryTracker
include Mongoid::History::Tracker
include Mongoid::Userstamp
# optional class-level config override
mongoid_userstamp created_name: :updater,
updated_name: :another_updater,
end
【讨论】:
Mongoid::Userstamp?我以为只有你的跟踪课程才需要它?如果我想将creator 更改为updater?
mongoid-audit gem 一起使用时,它让我 undefined method updater'` 出错
mongoid_userstamp 的注释?对不起,我忘了正确更新代码。