我正在通过带有 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 在没有未定义方法错误的情况下执行此操作?