2

ネストされたフォームへの編集リンクをレンダリングする方法を理解しようとしています。Rails - 編集モードでネストされたフォームを部分的にレンダーする方法

私はProjectとPotential Useというモデルを持っています。団体は次のとおりです。

プロジェクト

has_many :potential_uses 
     accepts_nested_attributes_for :potential_uses, reject_if: :all_blank, allow_destroy: true 

使用の可能性私のプロジェクトのショーのページで

belongs_to :project 
belongs_to :user 

、私は私の潜在的な用途から部分ビューをレンダリングするには、フォルダを表示します。そのビューでは、コンテンツを編集できるリンクを表示します。私の電位の

<% @project.potential_uses.each do |pu| %> 
      <p><%= pu.comment %></p> 
      <%= link_to 'Edit', edit_project_potential_use_path(@project, pu), f: f %> 

ビューのフォルダを使用して、私は、編集ビューを持っている約

<%= simple_form_for [ @project, @potential_use ] do |f| %> 

      <%= f.error_notification %> 

       <div class="form-inputs"> 
        <%= f.input :comment, :label => 'Comment ', :input_html => {:rows => 5} %> 

       </div>  

      <div class="form-actions"> 
      <%= f.button :submit, "Submit", :class => 'formsubmit' %> 
      </div> 

何かを:私の電位の

<%= render 'potential_uses_third_party_comments' %> 

は、私が持っている、部分的なサードパーティのコメントを使用していますこれは間違っています。保存して使用しようとすると、次のようなエラーが表示されます。

undefined local variable or method `f' for #<#<Class:0x007f8cb2f30188>:0x007f8cd171f448> 

私は他の投稿から理解していますが、このエラーは編集リンクの最後にf:fを追加することで解決します。私はすでにそれを持っています。

私は間違ったことを誰にでも見せてもらえますか?

答えて

0

あなたのコードは、あなたのf変数が定義されます。..

<% @project.potential_uses.each do |pu| %> 
    <p><%= pu.comment %></p> 
    <%= link_to 'Edit', edit_project_potential_use_path(@project, pu), f: f %> 
<% end %> 

を混乱さ? link_toメソッドにf: fを追加する理由は何ですか?

f - 私が思うに、FormBuilderオブジェクトは、一般的なケースでは、このように、render partialsf: fを追加することです:

<%= simple_form_for [ @project, @potential_use ] do |f| %> 
    <%= render 'potential_uses_third_party_comments', f: f %> 
<% end %> 
+0

他の投稿からアドバイスを受けていると思ったので、編集リンクにf:fを追加しました。私は、それが含まれることが意図されているのか、それとも正しく含まれているのかは全く分かりません。私は既存のコメントの隣に編集リンクを表示しようとしています。 – Mel

4

あなたがから入れ子にレンダリングするfields_for方法レールを使用することができます。

<%= f.fields_for :potential_uses do |pu| %> 
    <%= render 'potential_uses_third_party_comments', f: pu %> 
<% end %> 
<%= link_to_add_association '+ Add Potential Use(s)', f, :potential_uses, partial: "potential_uses_third_party_comments", class: "btn btn-sm btn-primary" %> 
+0

私の目的は、ユーザーが既存のコメントを編集できるようにすることです - 私は新しいコメントを作成するつもりはありません。 – Mel

+0

OK、許可されたパラメータ(強いパラメータ)のリストにidを渡すだけではありません。 –

+0

私は:def potential_use_params params.fetch(:potential_use、{})。許可(:コメント、:project_id、:ユーザーID、:private_comment) end – Mel

1

このURLをhttps://github.com/nathanvda/cocoonに送信してください。同じように考えてください。

+0

これらのドキュメントから何を学ぶべきかわかりません。私は作成と削除のアクションを見ることができます。私はどのように編集作業を得るために把握しようとしている – Mel

+0

ちょうど強いパラメタにIDを追加する –

関連する問題