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

この質問に私の答えがありました。

rails3が欲しい

- f.fields_for(:terms) do |term_form|することが:

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

したがって、Mongoidの関係とはまったく関係がないことがわかります。仮定してバカ。

于 2011-08-09T16:14:06.567 に答える