我在我的重寫activerecord方法的追求,但我需要訪問表名稱多對多關係:通過。我該怎麼做?RAILS ActiveRecord ::關係如何獲得多對多,但:表名
例如我有模型學生和主題,連接兩個我使用has_many主題,通過::寄存器。
我有一個聲明Student.find(1).subjects,我如何從activerecord語句獲取表名寄存器?
感謝
我在我的重寫activerecord方法的追求,但我需要訪問表名稱多對多關係:通過。我該怎麼做?RAILS ActiveRecord ::關係如何獲得多對多,但:表名
例如我有模型學生和主題,連接兩個我使用has_many主題,通過::寄存器。
我有一個聲明Student.find(1).subjects,我如何從activerecord語句獲取表名寄存器?
感謝
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
您可以訪問像下面所有的註冊記錄查詢註冊表項。
Register.all
從你的聲明 「Student.find(1).subjects」,如果你想獲得與明細科目沿着寄存器,你可以做:
Student.find(1).subjects.select("subjects.name, registers.name")