我在运行时为我的MongoDB模型创建动态类:
k = Class.new()do
include Mongoid::Document
include Mongoid::Attributes::Dynamic
...
...
end
我有一个objecgt 实体,它有一个属性 lookup 。当我创建新类k时,我想将entity.lookup分配给这个新类,以便我可以稍后访问此属性查找:
puts k.lookup
我该怎么做?我尝试了很多东西(例如):
k = Class.new()do
include Mongoid::Document
include Mongoid::Attributes::Dynamic
attr_accessor :lookup
@lookup = entity.lookup
...
...
end
但这不起作用!有什么想法吗?
答案 0 :(得分:0)
要理解的重要一点是k
是一个类。它没有(动态)属性'lookup`。只有该类的实例才能拥有该实例。观察:
k = Class.new do
include Mongoid::Document
store_in collection: 'kk'
field :lookup, type: String, default: 'blah'
end
k.new.lookup # => 'blah'