繁体   English   中英

Ruby on Rails Active Record:将 3 个方法链接在一起不起作用

[英]Ruby on Rails Active Record: chaining together 3 methods does not work

我是一名从事 Rails 项目的学生。 我设置了如图所示的表关系(我认为!)。

基本上,一个Group有很多Project,一个Project有很多任务。

使用通用变量名,我是能够得到group.projectsprojects.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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM