0

ネストされたフォーム/リソースとルーティングを使用しているときの通常の動作方法に問題があります。railsネストされたリソースと初期化されたリソースのルート

私は2つのテーブル、言葉と定義を持っている...

言葉は多くの定義がありますが、それは少なくとも一つの定義を持ってまで、私は、Wordを作成しないでください。

モデルとコントローラーのすべてが機能しますが、フォームヘルパーの処理方法はわかりません。

<%= semantic_form_for [@word, @definition] do |f| %> 

これは完璧に動作しますが、@wordは実際に存在し、新しい未保存のレコードでない場合のみ。コントローラーのIE私はfind_or_initialize_byを呼び出してWordを呼び出し、その定義をビルドしています。

<%= semantic_form_for [:word, @definition] do |f| %> 

この単語は、単語が存在しない場合のみ表示されます。私はこの構造を使用して編集しようとすると、私は奇妙なURL(これは動作しません)を取得します。私はurl_forヘルパーを使用してみましたが、上記と同様の結果を持っていたwords/12345/definition/12345

...

他のアイデアは?

答えて

1

Mongoidが埋め込まれた初期化されません。デフォルトでは文書。あなたはWordモデルにコールバックを持つ自分が最も可能性が高いそれらを構築する必要があります:

after_initialize :build_definition 

def build_definition 
    self.definitions.build unless self.definitions.any? 
end 
+0

それは動作しますが、私はそれがあまりにも他の多くの問題を引き起こし、後で気づきました。 @ worddefinitions.blankはもう使用できません。 – holden

0

あなたたく滞在CRUDた場合と定義が言葉の前に作成することができるようにあなたが行うことができますので、あなたは、定義、単語や1つの内外いずれかのルートを複製する必要がありますが:

<%= semantic_form_for [@definition] do |f| %> 
関連する問題