地狱所有,
我正在使用一个名为 socialization ( https://github.com/cmer/socialization )的红宝石宝石
我让它工作了,我可以关注和取消关注用户,看看有多少人关注或关注任何用户。问题是当我想输出关注者和关注者的用户名时,它仅适用于 user1,对于用户 2-4,它将根据关注者的数量按顺序显示用户名,例如,如果表是
- 用户 1 跟随 => 用户 2
- 用户 2 跟随 => 用户 3
我要求用户 3 的关注者(知道 user3 是 1 个关注者)它会打印出 User1 无论如何(我希望这是有道理的)
这是我的代码:
UsersController 中的 Followers 方法
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
用户控制器中的以下方法
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
其他所有内容要么不显示任何内容,要么显示错误的名称。
任何帮助,将不胜感激!