0

ユーザーの部分的なレンダリングを解決する方法について、私は本当に死んでいます。ユーザーが本を持ち、各本に多くの章があるアプリがあります。ユーザー A が本と章を作成すると、URL は site.com/book/1/chapter/1 のようになります。私がやろうとしているのは、ユーザーがログインしているときに、ユーザーに最近の章または最近のクレジットを表示したいということです

コンテンツ/home.html.erb

<% if signed_in? %>
  <%= render 'dashboard/home'%>
<% else %>
  <%= render 'homepage'%>
<% end %>

blocks/_user_chapters.html.erb

<% @user.chapters.each do |chapter| %>
  <%= div_for chapter do  %>
    <tr>
      <td><%= chapter.title %></td>
      <td><%= chapter.body %></td>
      <td><%= link_to 'View Chapter', book_chapter_path %></td>
    </tr>
  </table>
  <% end %>
<% end %>

ダッシュボード/_home.html.erb

<%= content_tag :h1, "Recent Chapters" %>
<%= render 'blocks/user_chapters', :locals => {:book => @book} %>

上からページをリロードすると、book:0x007fd996697630 の undefined メソッド `chapter' が表示されます。book /1/ に移動しても、ユーザーの最近の章はまだ表示されません。

ログインしているユーザーの最近の章や本にアクセスするにはどうすればよいですか?

4

1 に答える 1

1

あなたのコードから、あなたはパーシャルを持っているように見えますが、blocks/_user_chapters.html.erb経由でアクセスしようとしていますrender 'shared/user_chapters'。使用するには、 「_user_chapters.html.erb」を移動する必要がありますapp/views/shared

于 2012-10-04T22:38:27.953 に答える