该死的所有人,
我正在使用一个叫做社会化的红宝石(https://github.com/cmer/socialization)。
我有它的工作,我能够跟踪和取消跟踪一个用户,看看有多少人跟随或跟随任何用户。问题是,当我想输出跟随者的用户名时,它只适用于user1,对于用户2-4,它将根据关注者的数量来显示用户名,例如,如果表是
我要求用户3的追随者(知道user3是一个追随者),它会打印出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
endUsersController中的跟踪方法
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。
其他的东西要么没有显示,要么显示错了名字。
任何帮助都将不胜感激!
发布于 2013-02-27 16:11:57
您将在@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,然后构造类似的视图。
https://stackoverflow.com/questions/15114737
复制相似问题