代码之家  ›  专栏  ›  技术社区  ›  bax

rubyonrails活动记录:将3个方法链接在一起不起作用

  •  -1
  • bax  · 技术社区  · 6 年前

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

    基本上,一个团队有很多项目,一个项目有很多任务。

    使用泛型变量名,我可以 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
    

    Table Relationships

    组.任务

    1 回复  |  直到 6 年前
        1
  •  1
  •   Austio    6 年前

    找到这一点的更好方法之一是查看从这样的查询生成的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"