0

我有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

所以我可以访问该关系所属的组。

是我的设计关闭了,还是我在这里忽略了某些东西?

4

2 回答 2

0

我越来越接近答案了。我将一个块传递给 has_many

has_many accepted_relationships... do
  def assigned_group
    #code
  end
end

我还没有完全明白,但我认为这是我需要采取的路线。

于 2013-06-06T07:49:32.853 回答
0

我想,您的小组将有很多个人资料,您的小组是否需要关系,您可以在小组中拥有关系或个人资料,也可以通过关系拥有个人资料

于 2013-05-22T08:53:31.150 回答