ПРОБЛЕМА: @ user.friends не работает. Возвращает 2 записи и должно быть 4 ..
У меня есть следующие модели:
class User < ActiveRecord::Base
has_many :friendships
has_many :friends,
:through => :friendships,
:conditions => "status = 'accepted'",
:order => :fname
has_many :requested_friends,
:through => :friendships,
:source => :friend,
:conditions => "status = 'requested'"
has_many :pending_friends,
:through => :friendships,
:source => :friend,
:conditions => "status = 'pending'"
class Friendship < ActiveRecord::Base
belongs_to :user
belongs_to :friend, :class_name => "User", :foreign_key => "friend_id"
По какой-то причине. <%=@user.friends%>
не возвращает всех друзей пользователя.
Пример данных:
> @user.friendships.all.length
=> 4
> @user.friendships
=> [#<Friendship id: 20, user_id: 11, friend_id: 20, status: "accepted", created_at: "2011-12-22 12:59:22", updated_at: "2011-12-22 17:02:54">, #<Friendship id: 8, user_id: 11, friend_id: 12, status: "accepted", created_at: "2011-12-22 06:29:02", updated_at: "2011-12-22 07:41:24">, #<Friendship id: 3, user_id: 11, friend_id: 1, status: "approved", created_at: "2011-12-22 05:48:29", updated_at: "2011-12-22 06:22:09">, #<Friendship id: 1, user_id: 11, friend_id: 641, status: "approved", created_at: "2011-12-22 04:47:19", updated_at: "2011-12-22 04:47:19">]
> @user.friends.length
=> 2
@user.friends.length должно быть равно 4, поскольку приведенные выше данные показывают все статусы как «принятые». Любая идея, где я запутался в модельных ассоциациях, перечисленных выше?
Спасибо!