【发布时间】:2017-01-19 19:00:02
【问题描述】:
我的 Track.rb 模型有以下代码。有没有办法使用更多的 Rails 语法来编写它?我正在使用 Rails 3.2
@track = Track.find(7)
Submission.joins("LEFT JOIN missions ON missions.id = submissions.mission_id")
.joins("LEFT JOIN tracks ON tracks.id = missions.track_id")
.where("missions.track_id = ?", track.id)
型号:
Track.rb
has_many :missions
Mission.rb
belongs_to :track
has_many :submissions
Submission.rb
belongs_to :mission
【问题讨论】:
-
这些模型之间有关系吗?如果是这样,
includes就是要走的路。 -
是的,我所有的模型都设置正确
-
如果是,您可以通过预先加载所需的数据来锻炼
belongs_to类型的关系。includes具有添加连接的效果,而无需重新定义所涉及的所有内容。尝试一下,看看它会生成什么查询。您还可以设置has_many :missions, through: tracks等,以便首先为此建立适当的关系。
标签: sql ruby-on-rails ruby-on-rails-3 activerecord