0

レンダリングされたページ化されたオブジェクトがどのように機能するかについて、私は本当に混乱しています。これを例に取ってください:

私が走るとき

<%= render :partial => 'feeds/share_item', collection: @share_items %>
<%= will_paginate @share_items %>

私は行くことができ_share_item.html.erb、その中に私はこれを行うことができます...

<%= link_to "Delete", share_item, method: :delete, 
data: { confirm: "Are you sure you want to delete this?" }, 
class: "btn-link", title: share_item.content %>

...そして、削除リンクがあり、すべてうまくいきます。

しかし、まだ中_share_item.html.erbに、私がそれを置き換えると...

<%= render :partial => 'shared/delete' %>

...私はこれを取得します:

undefined local variable or method 'share_item' for #<#<Class:0xaf0b888>:0xb15cb3c>

なんで?

パーシャルにたくさんのフォームやリンクが散らかっているので、私はかなり長い間この問題を解決しようとしてきました。別のパーシャルを介して、上記のフォームとリンクをレンダリングできるようにしたいと思います。

ご協力いただきありがとうございます。

4

1 に答える 1

1

現在、変数share_itemはパーシャルに提供されていないため、空です。次のようなことをする必要があります。

<% @share_items.each do |share_item| %>
  <%= render :partial => 'shared/delete', :locals => { :share_item => share_item } %>
<% end %>

または、もう少し簡潔

<% @share_items.each do |share_item| %>
  <%= render 'shared/delete', share_item: share_item %>
<% end %>

または、さらに良い:

<%= render 'shared/delete',  collection: @share_items %>

あなたはここでより多くの情報を見つけることができます。

于 2012-11-16T00:46:17.060 に答える