2

我有一个这样的模型:

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

我有一些看起来像的haml:

= 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#new 方法如下所示:

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

如果页面上出现任何内容,我会喜欢它,但事实并非如此。

如何使用 Mongoid embeds_many 嵌入文档的 form_for 和 fields_for 制作表单?

作为记录,我还尝试了看起来像这样的haml:

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

和其他一些变化,都无济于事。

4

2 回答 2

2

您的表格看起来不错 - 但我注意到您的控制器操作中有错字。不确定这是否只是您的问题或实际应用程序中的错字,但是

@search.parties.build

应该

@search.terms.build
于 2011-08-03T04:19:51.563 回答
1

这个问题有我的答案。

轨道 3 想要

- f.fields_for(:terms) do |term_form|成为:

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

所以事实证明它与 mongoid 关系完全无关。愚蠢的我假设。

于 2011-08-09T16:14:06.567 回答