Dynamic attributes with Rails and Mongoid
Posted
by japancheese
on Stack Overflow
See other posts from Stack Overflow
or by japancheese
Published on 2010-04-23T14:16:26Z
Indexed on
2010/05/19
19:40 UTC
Read the original article
Hit count: 607
Hello,
I'm learning MongoDB through the Mongoid Ruby gem with Rails (Rails 3 beta 3), and I'm trying to come up with a way to create dynamic attributes on a model based on fields from another model, which I thought a schema-less database would be a good choice for.
So for example, I'd have the models:
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
I'm looking to take the "info_needed" attribute of the Account model and created dynamic attributes on the Member model based on what's inside. If club.info_needed was ["first_name", "last_name"], I'm trying to create a form that would save first_name and last_name attributes to the Member model.
However, upon practice, I just keep getting "undefined method first_name=" errors on the Member model when trying to do this. I know MongoDB can handle dynamic attributes per record, but how can I get Mongoid to do this without an undefined method error?
© Stack Overflow or respective owner