我正在寻求覆盖activerecord方法,但我需要访问表名多对多关系:通过。我该怎么做?
例如我有模型学生和主题,连接两个我使用has_many主题,通过:: register。
我有一个语句Student.find(1).subjects,我如何从activerecord语句中获取表名注册?
谢谢
答案 0 :(得分: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
答案 1 :(得分:0)
您可以访问以下所有注册记录。
Register.all
答案 2 :(得分:0)
根据您的声明“Student.find(1).subjects”,如果您希望获得注册以及主题详细信息,您可以这样做:
Student.find(1).subjects.select("subjects.name, registers.name")