首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将模型类之间的关系分解为Rails中的模型

将模型类之间的关系分解为Rails中的模型
EN

Stack Overflow用户
提问于 2022-03-21 17:30:39
回答 1查看 25关注 0票数 0

因此,在我的模型中,法官与项目有关:

代码语言:javascript
复制
class Judge < ApplicationRecord
  has_and_belongs_to_many :projects
  # ...
end

class Project < ApplicationRecord
  has_and_belongs_to_many :judges
  # ...
end

,在SQL中表示为

代码语言:javascript
复制
CREATE TABLE public.judges_projects (
    judge_id bigint NOT NULL,
    project_id bigint NOT NULL
);

现在我需要能够增加评委对他们所评价的项目的反馈。我编写了一个简单的迁移(add_column :judges_projects, :feedback, :string, default: ''),它生成了这个修改后的SQL:

代码语言:javascript
复制
CREATE TABLE public.judges_projects (
    judge_id bigint NOT NULL,
    project_id bigint NOT NULL,
    feedback character varying DEFAULT ''::character varying
);

如何在不破坏现有评审和项目的情况下重构模型以包括附加字段

EN

回答 1

Stack Overflow用户

发布于 2022-03-21 18:22:30

它既不会破坏裁判也不会破坏项目。你可以好好利用它。

但是,如果您想获得feedback,您需要为judges_projects建立一个模型,因为它不是一个简单的联接表。

代码语言:javascript
复制
class Judge < ApplicationRecord
  has_many :judges_projects
  has_many :projects, through: :judges_projects
  # ...
end

class Project < ApplicationRecord
  has_many :judges_projects
  has_many :judges, through :judges_projects
end

# You might want to rename the table to something more
# descriptive.
class JudgesProject < ApplicationRecord
  belongs_to :judge
  belongs_to :project
end

你可以去找judge.judges_projects.first.feedback

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71561731

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档