我的gem公开了一个可以包含在Mongoid映射器类中的模块,以跟踪更改。
我希望用户能够在其类上标记特定字段,以便不同地处理它们。
我的想法是创建一个appendable
标志。请参阅以下模块相关部分的概述:
module PendingChanges
included do
attr_accessor :__appendable_fields
private def self.appendable(field)
self.__appendable_fields << field
end
end
end
因此,当用户想要将其文档上的字段标记为&#34;可附加的&#34;他们会这样做:
class Person
include PendingChanges
field :name, type: String
field :emails, type: Array
appendable :emails <- this is what they would do
end
我似乎无法使其发挥作用,因为__appendable_fields
总是nil
。另外,我不相信这是&#34; Ruby方式&#34;接近这个?
答案 0 :(得分:0)
显然,我不得不使用mattr_accessor
。
我可以使用self.__appendable_fields
方法appendable
访问它。