我想動態地添加密鑰到MongoMapper文檔。紅寶石元編程與MongoMapper
def build(attrs={})
doc = self.new
apply_scope(doc)
doc.set_up_keys!
doc.attributes = attrs
doc
end
def set_up_keys!
return unless form
form.fields.each do |f|
next if self.keys.include?(f.underscored_name)
self.class.send(:key, f.underscored_name, f.keys['default'].type, :required => f.required, :default => f.default)
end
end
form
是一個相關的模型。我想根據form#fields
具有的當前模型(self)創建密鑰。
問題是,如果我創建兩個模型,它們兩個模型都具有相同的鍵。
self.class.send(:key...)
將鍵添加到模型中。
他們爲什麼被添加到兩個模型?
是因爲該方法是在類上下文中調用的嗎?
我怎樣才能影響個人實例?
不要將它發送到類。 –
但是不是#key類方法嗎?不確定我是否遵循:( – jordelver