ページ1では、コードA + B+Cを使用します
2ページ目では、コードB+Cを使用しています
ですから、パーシャルを作るとき、これにどう対処するかは本当にわかりません。
たとえば、ポストコメントシステムでは。@commentsを2つの異なるページに表示したいと思います。コメントインデックスページに、所属する投稿を表示します。そして、ポストショーページでは、コメントの内容を表示するだけです(comment.postを再度表示する必要がないため)
#Comment Index Page
<% @comments.each do |comment| %>
<%= comment.post %>
<%= comment.author %>
<%= comment.content %>
<% end %>
..
#Post Show Page
<% @comments.each do |comment| %>
<%= comment.author %>
<%= comment.content %>
<% end %>
では、コードを再利用するためにパーシャルを作成するにはどうすればよいですか?おそらくこのように?しかし、これを行うためのよりエレガントな方法はありますか?
#Comment Index Page
<% @comments.each do |comment| %>
<%= comment.post %>
<%= render comment %>
<% end %>
#Post Show Page
<% @comments.each do |comment| %>
<%= render comment %>
<%終了%>
更新:ローカル変数アプローチを採用し、次のようにコードを更新します。
# partial
<% if include_topic %>
<div class="Topic">
<h5><%= link_to "#{comment.topic.content}", comment.topic %></h5>
</div>
<% end %>
#Index
<%= render @comments, :locals => {:include_topic => true } %>
しかし、#<#の未定義のローカル変数またはメソッド`include_topic'を取得します。この問題をデバッグする場所が見つかりません。