gpt4 book ai didi

ruby-on-rails - 创建模型实例时如何建立 has_and_belongs_to_many 关联

转载 作者:行者123 更新时间:2023-12-04 18:32:07 25 4
gpt4 key购买 nike

c = Course.create name:"Math1", ??

我试图弄清楚如何将这门类(class)与 has_and_belongs_to_many 的现有学生联系起来。下面是我的关联模式。我无法创建每个实例并放入它们的特定关联。
ActiveRecord::Schema.define(version: 20170127225124) do

create_table "courses", force: :cascade do |t|
t.string "name"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end

create_table "students", force: :cascade do |t|
t.string "username"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end

create_table "students_courses", id: false, force: :cascade do |t|
t.integer "students_id"
t.integer "courses_id"
t.index ["courses_id"], name: "index_students_courses_on_courses_id"
t.index ["students_id"], name: "index_students_courses_on_students_id"
end

end

最佳答案

好吧.. 在 has_and_belongs_to_many 关联中,您无需担心中间表。 Here您可以找到通过这种关联类型添加到模型中的方法。

因此,您可以这样做的一种方法是传递一组学生 ID,例如:

student = Student.create username: "John"
c = Course.create name: "Math1", student_ids: [student.id]

您还可以使用 create 方法:
c.students.create({username: "John"})

另外,请注意您的连接表。默认情况下,rails 期望它按字母顺序排列, courses_students 也是如此。反而。为此,我通常更喜欢使用 create_join_table命令(引用 here)。

关于ruby-on-rails - 创建模型实例时如何建立 has_and_belongs_to_many 关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41904700/

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