2011-09-23 5 views
1

Можно создать дубликат:
Rails has_many :through Find by Extra Attributes in Join ModelПоиск по атрибуту посреднику в has_many: через в Rails

У меня есть следующие многие ко многим настройки в моей модели:

class Project < ActiveRecord::Base 
    has_many :projectcollaborations 
    has_many :partners, :through => :projectcollaborations, :source => :partner 
end 

class Partner < ActiveRecord::Base 
    has_many :projectcollaborations 
    has_many :projects, :through => :projectcollaborations, :source => :project 
end 

class Projectcollaboration < ActiveRecord::Base 
    belongs_to :project 
    belongs_to :partner 
end 

Доступ к:

@partner = Partner.first 
@partner.projects 
@partner.projectcollaborations.find_by_myrole('creator') 
.... 

Теперь как я могу получить доступ к проекту @partner, имеющему создателя myrole в моей таблице отношений «многие ко многим»?

+1

Пожалуйста, используйте правильный корпус для названий ассоциаций и классов: то есть 'project_collaborations', а не' projectcollaborations' и 'ProjectCollaboration', а не' Projectcollaboration'. Это делает код более понятным для всех участников. –

+0

У меня вопрос? –

ответ

0
@collaborations = @partner.projectcollaborations.includes(:projects).find_all_by_myrole('creator') 
@projects = @collaborations.map &:project 

может быть, есть другой, похорошела, railsier путь, но это, как я бы это сделать

Смежные вопросы