2016-10-21 55 views
0

我在我的重寫activerecord方法的追求,但我需要訪問表名稱多對多關係:通過。我該怎麼做?RAILS ActiveRecord ::關係如何獲得多對多,但:表名

例如我有模型學生和主題,連接兩個我使用has_many主題,通過::寄存器。

我有一個聲明Student.find(1).subjects,我如何從activerecord語句獲取表名寄存器?

感謝

回答

0

Student.rb

Class Student < ActiveRecord::Base 
    has_many :registers 
    has_many :subjects, :through => :registers 
end 

subject.rb中

class Subject < ActiveRecord::Base 
    has_many :registers 
    has_many :students, :through => :registers 
end 

register.rb

Class Register 
    belongs_to :student 
    belongs_to :subjet 
end 

確保您的加入聯想這樣。您可以通過Student.find(1).subjects

讓你的所有主題列表,您還可以通過使用Register.all

0

您可以訪問像下面所有的註冊記錄查詢註冊表項。

Register.all 
0

從你的聲明 「Student.find(1).subjects」,如果你想獲得與明細科目沿着寄存器,你可以做:

Student.find(1).subjects.select("subjects.name, registers.name")