0

У меня есть модель сотрудничества с полиморфной ассоциацией с классом | Школа и один-ко-многим ассоциации с пользователемpolyorphic и one-to-many association

belongs_to :owner, polymorphic: true 
    belongs_to :user, foreign_key: "teacher_id" 

это так, как я управлять пользователями, которые могут получить доступ к школе или классе. Теперь, что мне нужно, чтобы сделать что-то вроде этого

School.first.teachers 
Grade.first.teachers 

Я думаю, что это будет что-то вроде этого в модели класса/школы

has_many :teachers, through: :collaborations, foreign_key: "teacher_id" 

но это, кажется, не будет правильным решением , Есть идеи?

ответ

1
has_many :collaborations, :as => :owner 
has_many :teachers, :through => :collaborations, :source => :user 
+0

Это, кажется, правильный ответ: D. благодаря – vladCovaliov

0

Вам необходимо установить полиморфную связь для сотрудничества. Попробуйте:

class School < ActiveRecord::Base 
    has_many :collaborations, :as => :owner 
    has_many :teachers, :through => :collaborations 
end 
+0

Как Бабура Usenakunov сказал в предыдущем посте, я нужен источник:: пользователь тоже. :) Спасибо за ваш ответ – vladCovaliov