我有一个名为Profile
的自引用模型,它通过Relationship
模型连接。
class Profile < ActiveRecord::Base
belongs_to :user
has_many :accepted_relationships, class_name: 'Relationship', foreign_key: 'responder_id'
has_many :followers, through: :accepted_relationships, source: 'initiator'
has_many :initiated_relationships, class_name: 'Relationship', foreign_key: 'initiator_id'
has_many :followed_profiles, through: :initiated_relationships, source: 'responder'
has_many :groups
end
class Relationship < ActiveRecord::Base
belongs_to :responder, class_name: 'Profile', foreign_key: 'responder_id'
belongs_to :initiator, class_name: 'Profile', foreign_key: 'initiator_id'
belongs_to :group
end
class Group < ActiveRecord::Base
belongs_to :profile
has_many :relationships
attr_accessible :name
end
问题是我不知道如何访问连接模型上的数据。如果我做了类似的事情;
user.profiles[1].followers[1]
它会给我我想要的个人资料。我也希望有类似的东西;
user.profiles[1].followers[1].assigned_group
所以我可以访问该关系所属的组。
我的设计是关闭的,还是我在这里忽略了什么?
答案 0 :(得分:0)
我想,您的论坛会有很多个人资料,并且您的小组需要关系,您可以在您的小组中建立关系或个人资料或通过关系配置个人资料
答案 1 :(得分:0)
我越来越接近答案了。我正在将一个块传递给has_many
has_many accepted_relationships... do
def assigned_group
#code
end
end
我还没有完全理解,但我认为这是我需要采取的路线。