2017-12-29 13 views
1
<%= form_for @poll do |f| %> 
    <%= render 'shared/errors', object: @poll %> 
     <div class="form-group"> 
     <%= f.label :topic %> 
     <%= f.text_area :topic, rows: 3, required: true, class: 'form-control' %> 
     </div> 

    <div class="panel panel-default"> 
    <div class="panel-heading">Options</div> 
     <div class="panel-body"> 
     <%= f.fields_for :vote_options do |options_form| %> 
     <%= render 'vote_option_fields', f: options_form %> 
     <% end %> 

    <div class="links"> 
     <%= link_to_add_association 'add option', f, :vote_options%> 
     </div> 
    </div> 
    </div> 

    <%= f.submit 'Create', class: 'btn btn-primary btn-lg' %> 
    <% end %> 

link_to_add_associationは機能しません。これは、テンプレートが実際に存在するときにテンプレートが見つからないことを示しています。Ruby on Railsで、指定された関連付けに新しい部分フォームを動的に追加することができません。私は繭の宝石を使用しています

はここたぶん、あなたはhtml_optionsとして部分パスを追加することができ、私の_vote_option_field.html.erb

<div class="nested-fields"> 
    <div class="form-group"> 
    <%= f.label :title %> 
    <%= f.text_field :title, class: 'form-control', required: true %> 
</div> 
<%= link_to_remove_association "remove option", f %> 
</div> 
+0

あなたの質問に 'vote_option_fields'ビューを含めることができますか?また、ファイル名の最初の位置にアンダースコアがありますか? '_vote_option_fields.html.erb' – SteveTurczyn

+0

この' form'が存在する現在のフォルダに '_vote_option_fields.html.erb'がありますか?その部分がない場合は、あなたが部分的な完全なパスを提供する必要があります。 – Gabbar

+0

はい、あります。 _vote_option_fields.html.erbは現在のフォルダにあります。 – asquare14

答えて

0

です。このような何か:

<div class="links"> 
    <%= link_to_add_association 'add option', f, :vote_options, partial: 'your/partial/path'%> 
</div>` 
-1

ただ、だからあなたの

<%= f.fields_for :vote_options do |options_form| %> 
<% end %> 


<%= link_to_add_association 'add option', f, :vote_options%>
を置き、あなたのコードは

<%= f.fields_for :vote_options do |options_form| %> 
    <%= render 'vote_option_fields', f: options_form %> 
    <div class="links"> 
    <%= link_to_add_association 'add option', f, :vote_options%> 
    </div> 
<% end %> 


のようになりますが、これが役立つことを願っています。

+0

が間違っています。 '<%= link_to_add_association '追加オプション'、f、:vote_options%>' 'fields_for'ブロックの外側にある必要があります。 – Gabbar

+0

はい。 field_forはネストされたフォームを作成するために使用され、link_to_add_associationは新しいネストされたフィールドを動的に追加するリンクをレンダリングします。 – asquare14

+0

これは繭の宝石の仕組みです。ここでドキュメントをチェックするだけですhttps://github.com/nathanvda/cocoon @Gabbar –

関連する問題