0

对于如何为用户解决部分问题,我真的很困惑。我有一个应用程序,用户有书,每本书都有很多章节。所以用户 A 会创建一本书和章节,并且 URL 看起来像 site.com/book/1/chapter/1。我想做的是当用户登录时我想向用户显示最近的章节或最近的学分

内容/home.html.erb

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

块/_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 的未定义方法“章节”。即使我进入 book/1/,我仍然看不到用户最近的章节。

如何在我的 Rails 应用程序中的任何位置访问登录用户最近的章节或书籍?

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 回答