地獄のすべて、
私はsocialization(https://github.com/cmer/socialization)と呼ばれるルビーの宝石を使用しています
私はそれを機能させており、ユーザーをフォローおよびフォロー解除して、任意のユーザーをフォローまたはフォローしているユーザーの数を確認できます。問題は、フォロワーとフォローのユーザー名を出力したい場合です。これはuser1でのみ機能し、ユーザー2〜4の場合は、フォロワーの数に基づいてユーザー名が順番に表示されます。
- user1が続く=>ユーザー2
- user2が続く=>ユーザー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
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
他のすべては何も表示しないか、間違った名前を表示します。
どんな助けでもいただければ幸いです!