我有一个这样的模型:
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 = Search.new
@search.terms.build
如果页面上出现任何内容,我会很喜欢它,但事实并非如此。
如何使用form_for和fields_for为Mongoid embeds_many嵌入文档创建表单?
为了记录,我也试过haml,看起来像:
= form_for @search do |f|
- @search.terms.each do |term|
- f.fields_for(term) do |term_form|
....
以及其他一些变化,都无济于事。
答案 0 :(得分:2)
你的表格似乎很好 - 但我注意到你的控制器动作中有一个错字。不确定这只是你问题或实际应用中的错字,但是
@search.parties.build
应该是
@search.terms.build
答案 1 :(得分:1)
this问题有我的答案。
rails 3想要
- f.fields_for(:terms) do |term_form|
:
= f.fields_for(:terms) do |term_form|
所以事实证明它与mongoid关系完全无关。假设我是愚蠢的。