地狱全部,
我正在使用名为socialization(https://github.com/cmer/socialization)
的ruby gem我有它工作,我能够关注和取消关注用户,看看有多少人关注或跟随任何用户。问题是,当我想输出关注者的用户名和关注时,它只适用于user1,而对于用户2-4,它将根据有多少关注者按顺序显示用户名。如果表是
我要求用户3的关注者(知道user3为1个关注者)它会打印出User1而不管(我希望这是有意义的)
这是我的代码:
UsersController中的关注者方法
def followers
@user = User.find(params[:user])
@followers = @user.followers(User)
@users = User.all
response = {:user => @user, :followers => @followers, :users => @users}
respond_to do |format|
format.html #followers.html.erb
format.xml {render :xml => response}
end
end
在UsersController中使用以下方法
def following
@user = User.find(params[:user])
@following = @user.followers(User)
@users = User.all
response = {:user => @user, :following => @following, :users => @users}
respond_to do |format|
format.html #following.html.erb
format.xml {render :xml => response}
end
end
以下视图:
<p><u>Following</u></p>
<% (1..(@following.count)).each do |i| %>
<% if @users[i].followed_by?(@user) %>
<p> <%= @users[i].username %> </p>
<% end %>
<% end %>
粉丝查看
<p><u>Followers</u></p>
<% (1..(@followers.count)).each do |i| %>
<% if @users[i].follows?(@user) %>
<p> <%= @users[i].username %> </p>
<% end %>
<% end %>
我的路线
resources :users do
match 'show/:id' => 'user#show'
collection do
get 'follow'
get 'unfollow'
get 'followers'
get 'following'
end
唯一似乎正常工作的是/users/followers?user=1
其他一切都没有显示任何内容或错误的名称。
任何帮助将不胜感激!
答案 0 :(得分:0)
您正在@followers
中收到所有关注者,因此请在您的视图中使用:
<p><u>Followers</u></p>
<% @followers.each do |f| %> # f object is of type User.
# You don't need the if statement that you had,
# because you already know that they are followers.
<p> <%= f.username %> </p>
<% end %>
这将打印每个follower
的用户名。您遇到的其他问题是您的关注者和以下方法执行相同的操作,请检查您的gem的文档以了解如何获取following
,然后为此类似地构建视图。