这是我的用户模型:
class User < ActiveRecord::Base
has_many :friends, :class_name => 'Friendship', :dependent => :destroy
end
这是我的友谊模型:
class Friendship < ActiveRecord::Base
belongs_to :user
belongs_to :friend, :class_name => 'User', :foreign_key => 'friend_id'
set_table_name :users_users
end
确定。所以我的应用程序中实际上没有一个场景,我需要一个友谊对象。例如,当我调用User.find(1).friends时,我不希望返回友谊对象数组。我实际上想要用户对象。
因此,当我调用User.find(1).friends时,如何让它返回User对象?
答案 0 :(得分:2)
你确定你不想要这个吗?
class User < ActiveRecord::Base
has_many :friendships
has_many :friends, :through => :friendships
end
class Friendship < ActiveRecord::Base
belongs_to :user
belongs_to :friend, :class_name => "User", :foreign_key => "friend_id"
end
有了这个,User.find(1).friends将返回一组用户,而不是友谊。