Динамические атрибуты с Rails и Mongoid

Я изучаю MongoDB через драгоценный камень Mongoid Ruby с направляющими (Направляющие 3 беты 3), и я пытаюсь придумать способ создать динамические атрибуты на основанном на модели на полях из другой модели, которая я думал, что бессхемная база данных будет хорошим выбором для.

Так, например, у меня были бы модели:

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

Я надеюсь брать "info_needed" атрибут модели Account и создал динамические атрибуты на участнике, основанном на модели на том, что внутри. Если бы клуб info_needed был ["first_name", "last_name"], я пытаюсь создать форму, которая сохранила бы first_name, и last_name приписывает членской модели.

Однако на практику, я просто продолжаю получать "неопределенный метод first_name =" ошибки на членской модели при попытке сделать это. Я знаю, что MongoDB может обработать динамические атрибуты на запись, но как я могу заставить Mongoid делать это без ошибки неопределенного метода?

15
задан joeellis 23 April 2010 в 14:16
поделиться

2 ответа

Mongoid на самом деле не поддерживает его.

Я сам случайно спросил об этом в группе Mongoid.

Это возможно при создании нового документа, например:

account = Account.new (: some_dynamic_field => "...")

1
ответ дан 1 December 2019 в 01:10
поделиться

Не забудьте установить allow_dynamic_fields: true в mongoid.yml . Пример:

defaults: &defaults
  allow_dynamic_fields: true
  parameterize_keys: true
  persist_in_safe_mode: true
  raise_not_found_error: true
  reconnect_time: 3
  use_object_ids: false

development:
  <<: *defaults

...
8
ответ дан 1 December 2019 в 01:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: