В has_many через есть ли способ ссылки на таблицу соединений напрямую? - PullRequest
0 голосов
/ 08 сентября 2011

Можете ли вы ссылаться на свойства таблицы соединения в отношении has_many :through?

Классические отношения соединения:

class Committee
  has_many :positions
  has_many :members, through: :positions
end

class Member
  has_many :positions
end

class Positions
  belongs_to :committee
  belongs_to :member

  attr_accessible :description
end

Это дает нам хороший способ получить доступ к членам непосредственно из Комитета:

c = Factory :committee
first_member = members.first

Доступ к информации в таблице соединений через ассоциацию

Есть ли какой-нибудь способ сослаться на описание позиции (которая существует в таблице соединений) из этого отношения?

, например

first_member_description = members.first.proxy.description

Если нет, то какой самый чистый способ получить доступ к описанию конкретного члена комитета ?

Зачем мне это делать?

Я хочу сделать это, потому что я хочу найти члена комитета по имени, а затем найти его описание:

1031 * т.е. *

peters_description = committee.members.find_by_first_name('Peter').proxy.description

1 Ответ

0 голосов
/ 08 сентября 2011

Вы можете добавить искатель в классе Position:

class Position < ActiveRecord::Base
  belongs_to :committee
  belongs_to :member

  attr_accessible :description

  scope :find_all_by_first_name, lambda do |name|
    joins(:member).where("members.first_name = ?", name)
  end
end

Это должно позволить вам сделать:

peters_description = committee.positions.find_all_by_first_name('Peter').first.description
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...