私のアプリでは、ユーザーは互いに従うことができます。私は2つのテーブル:users
とfollowers
を持っています。フォロワーモデルin Rails
users
id
name
followers
id
user_id
follower_id
そして、二つのモデル:私は何をしたいか
class User < ActiveRecord::Base
has_many :followers
belongs_to :follower
end
class Follower < ActiveRecord::Base
belongs_to :user
end
は、ユーザーのフォロワーをリストです。例えばしかし、私は照会することができませんでしだ
...私はそれが働いてしまったディープの提案どおりに私のモデルを更新した後、それが関連を見なければ見えないしかし
<ul>
<% @users.each do |user| %>
<li><%= user.name %></li>
<ul>
<% user.followers.each do |follower| %>
<li><%= follower.name %></li>
<% end %>
</ul>
<% end %>
</ul>
...フォロワーとフォローしています。
def user_followers
@user = User.where(id: params[:id]).first
@followers = @user.get_followers
end
def user_following
@user = User.where(id: params[:id]).first
@following = @user.get_following
end
、その後、私のUserモデルに私が持っている:
私は私がUserControllerでの2つのメソッドを持っているユーザーまたはユーザーがフォローしているために信者を返すべきである
def get_followers
Follower.where(follower_id: self.id)
end
def get_following
Follower.where(user_id: self.id)
end
。ビューは次のようになります。
<% @followers.each do |follower| %>
<%= follower.user.name %>
<% end %>
<% @following.each do |following| %>
<%= following.user.name %>
<% end %>
ただし、表示されるはずのユーザーの名前のみを返します。
設定モデルは今のようになります。
class Follower < ActiveRecord::Base
belongs_to :user, foreign_key: 'follower_id', class_name: 'User'
end
この音をし、名前をフェッチします。そして、あなたの問題:エラーメッセージ? – Fallenhero
エラーは 'follower'をユーザとして見ないので' name'を見つけることができないということです... – Cameron