[英]Ruby on Rails Active Record: chaining together 3 methods does not work
我是一名从事 Rails 项目的学生。 我设置了如图所示的表关系(我认为!)。
基本上,一个Group有很多Project,一个Project有很多任务。
使用通用变量名,我是能够得到group.projects
和projects.tasks
工作,但不group.tasks
。 这可能吗? 我错过了什么?
任何帮助将不胜感激。 以防万一,这是我的模型(我删除了所有“用户”信息,因为它不相关):
class Group < ApplicationRecord
has_many :projects
has_many :tasks, through: :projects
end
class Project < ApplicationRecord
belongs_to :group
has_many :tasks
end
class Task < ApplicationRecord
belongs_to :project
end
group.tasks
可能吗?
是的,这应该是开箱即用的。
找出这个问题的更好方法之一是查看从这样的查询生成的 sql,看看它是否与您想要的相符。 我清理了一点,但看起来和你想要的完全一样。
irb(main):> Group.first.tasks.to_sql
Group Load (0.1ms) SELECT "groups".* FROM "groups" ORDER BY "groups"."id" ASC LIMIT ? [["LIMIT", 1]]
=> SELECT "tasks".* FROM "tasks"
INNER JOIN "projects"
ON "tasks"."project_id" = "projects"."id"
WHERE "projects"."group_id" = 1"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.