Rails:显示关注者/关注者

时间:2012-02-14 06:57:28

标签: ruby-on-rails ruby ruby-on-rails-3 relationship

我目前在Rails教程的这一部分遇到问题:显示关注者/关注者。确定的问题是:

Missing partial users/user with {:locale=>[:en], :formats=>[:html], :handlers=>[:erb, :builder, :coffee]}. Searched in:  * "/Users/--/rails/--/app/views"

提取的来源(第3行):

<% unless @users.empty? %>
 <ul class="users">
  <%= render @users %>
 </ul>
 <%= will_paginate @users %>
<% end %>

用户控制器

def following
   @title = "Following"
   @user = User.find(params[:id])
   @users = @user.followed_users.paginate(page: params[:page])
   render 'show_follow'
end

def followers
   @title = "Followers"
   @user = User.find(params[:id])
   @users = @user.followers.paginate(page: params[:page])
   render 'show_follow'
end

的routes.rb

resources :users do
     member do
       get :following, :followers
     end
end

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

复制users/index.html.erb,用于显示“所有用户”并粘贴创建名为users/_user.html.erb的代码

答案 1 :(得分:0)

以防万一其他人偶然发现这个问题,本书的一部分在跟随者/后续功能(代码清单12.24)之前很久就解决了_user.html.erb部分问题(参见Ruby on Rails教程,清单9.46以后)。它需要app / views / users / index.html.erb的一部分并放置在以下内容中,这对于关注者/关注功能正常工作至关重要:

app/views/users/_user.html.erb
<li>
 <%= gravatar_for user, size: 50 %>
 <%= link_to user.name, user %>
 <% if current_user.admin? && !current_user?(user) %>
   | <%= link_to "delete", user, method: :delete,
                                 data: { confirm: "You sure?" } %>
 <% end %>
</li>

请务必调整app / views / users / index.html.erb以删除代码,并使用渲染部分替换代码。