gpt4 book ai didi

activerecord - 如何设置两个具有 has_many 关联的模型

转载 作者:行者123 更新时间:2023-12-04 06:38:18 24 4
gpt4 key购买 nike

我正在寻找有关如何设置两个模型(教师和主题)的建议。一个老师可以有很多科目,一个科目可以有很多老师。在这两种模型之间的关系中要考虑的另一件事是教师可以创建一个主题并将其他教师添加到该主题中。

我认为我对每个模型的设置基础知识都很扎实:

对于老师.rb:

has_many :subjects

对于主题.rb:
has_many :teachers

并且教师表应该有一个subject_id 列,而主题表应该有一个teacher_id 列。

我不确定的是如何设置 View (和相应的 Controller 方法)以允许向主题添加教师。

非常感谢任何建议(或示例链接)。我一直无法在这个确切的案例中找到任何东西。

当前设置:
  • Student 对象的标准 CRUD
  • 项目对象的标准 CRUD

  • 我可能在如何将这些模型联系在一起(除了将 has_many 更改为 habtm 的部分)以及将记录输入到 subject_teachers 表中方面遗漏了一些简单的东西,但我仍然找不到一个好的例子......

    最佳答案

    您需要在它们之间建立关系表。没有 rel 表就不可能有多对多的关系

    首先,它是一个 has_and_belongs_to_many :subjects 和 has_and_belongs_to_many :teachers(通常称为 habtm)

    http://guides.rubyonrails.org/association_basics.html#the-has_and_belongs_to_many-association


    rails g migration subjects_teachers

    打开迁移:
    create_table :subjects_teachers, :id => false do |t| # ID => FALSE = IMPORTANT
    t.references :subject
    t.references :teacher
    # NO TIMESTAMPS
    end


    rake db:migrate 并且你应该被设置了!

    然后

    请参阅这些 railscasts 以设置您的 Controller

    http://railscasts.com/episodes/17-habtm-checkboxes

    http://railscasts.com/episodes/47-two-many-to-many

    关于activerecord - 如何设置两个具有 has_many 关联的模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4601171/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com