【发布时间】:2010-04-23 14:16:26
【问题描述】:
我正在通过带有 Rails(Rails 3 beta 3)的 Mongoid Ruby gem 来学习 MongoDB,并且我试图想出一种方法来基于来自另一个模型的字段在模型上创建动态属性,我认为无模式数据库将是一个不错的选择。
例如,我有模型:
class Account
include Mongoid::Document
field :name, :type => String
field :token, :type => String
field :info_needed, :type => Array
embeds_many :members
end
class Member
include Mongoid::Document
embedded_in :account, :inverse_of => :members
end
我希望采用 Account 模型的“info_needed”属性,并根据里面的内容在 Member 模型上创建动态属性。如果 club.info_needed 是 ["first_name", "last_name"],我正在尝试创建一个将 first_name 和 last_name 属性保存到 Member 模型的表单。
但是,在实践中,我只是在尝试执行此操作时不断在 Member 模型上收到“未定义的方法 first_name=”错误。我知道 MongoDB 可以处理每条记录的动态属性,但是我怎样才能让 Mongoid 做到这一点而不会出现未定义的方法错误?
【问题讨论】:
-
请您在下面选择我的答案作为答案,因为它比当前选择的答案更准确。
标签: ruby-on-rails mongodb mongoid dynamic-attributes