Mongoid embeds_many с Rails fields_for - PullRequest
       34

Mongoid embeds_many с Rails fields_for

2 голосов
/ 03 августа 2011

У меня есть такая модель:

class Search
  include Mongoid::Document

  embeds_many :terms

  accepts_nested_attributes_for :terms
end

class Terms
  include Mongoid::Document

  embedded_in :search, inverse_of: :terms

  field :some,    type: String
  field :search,  type: String
  field :terms,   type: String
end

, и у меня есть хамл, похожий на:

= form_for @search do |f|
  - f.fields_for(:terms) do |term_form|
    = term_form.label :some
    = term_form.text_field :some
    = term_form.label :search
    = term_form.text_field :search
  = f.submit 'Save'

мой метод поиска # выглядит следующим образом:

@search = Search.new
@search.terms.build

и мне бы понравилось, если бы что-нибудь появилось на странице, но это не так.

Как мне создать форму, используя form_for и fields_for для внедренного документа Mongoid embeds_many?

Для справки, я также попробовал хамл, который выглядит так:

= form_for @search do |f|
  - @search.terms.each do |term|
    - f.fields_for(term) do |term_form|
....

и несколько других вариантов, но все безрезультатно.

Ответы [ 2 ]

2 голосов
/ 03 августа 2011

Ваша форма выглядит нормально - но я заметил, что в действии вашего контроллера есть опечатка. Не уверен, что это просто опечатка в вашем вопросе или в вашем приложении, но

@search.parties.build

должно быть

@search.terms.build
1 голос
/ 09 августа 2011

на этот вопрос был мой ответ.

рельсы 3 хочет

- f.fields_for(:terms) do |term_form| будет:

= f.fields_for(:terms) do |term_form|

получается, что это не имеет абсолютно никакого отношения к отношениям mongoid. Глупо, что я предполагаю.

...