ruby-on-rails – seed.rb中的关联
发布时间:2020-12-17 02:10:24 所属栏目:百科 来源:网络整理
导读:我的应用程序中有以下模型 class Building ApplicationRecord has_many :rooms,dependent: :destroy ...class Room ApplicationRecord belongs_to :building has_many :lessons,dependent: :destroy ...class Lesson ApplicationRecord belongs_to :room bel
|
我的应用程序中有以下模型
class Building < ApplicationRecord has_many :rooms,dependent: :destroy ... class Room < ApplicationRecord belongs_to :building has_many :lessons,dependent: :destroy ... class Lesson < ApplicationRecord belongs_to :room belongs_to :teacher belongs_to :course ... 使用以下代码,Bulding及其房间之间的一切正常: if Building.find_by_code("PAR").nil?
building = Building.create!({title: "Areál Paruká?ka",code: "PAR"})
par_rooms.each do |room|
building.rooms << Room.create({title: room[0],code: room[1]})
end
end
现在我想为每个房间添加课程.使用以下代码,不会引发错误,当我添加一些“puts”时,它表示已经创建了课程,但它们在控制器/视图中不可用.这是我使用的种子: if Building.find_by_code("PAR").nil?
building = Building.create!({title: "Areál Paruká?ka",code: "PAR"})
par_rooms.each do |room|
new_room = Room.create({title: room[0],code: room[1]})
building.rooms << new_room
lesson = Lesson.create({start_at: DateTime.new(2018,11,20,8),end_at: DateTime.new(2018,9,30),durration: 45,room_id: new_room.id,teacher_id: nil,course_id: nil})
new_room.lessons << lesson
end
房间和课程表具有以下架构: create_table "rooms",force: :cascade do |t|
t.string "title"
t.string "code"
t.datetime "created_at",null: false
t.datetime "updated_at",null: false
t.integer "building_id"
t.index ["building_id"],name: "index_rooms_on_building_id"
end
create_table "lessons",force: :cascade do |t|
t.datetime "start_at"
t.datetime "end_at"
t.integer "durration"
t.datetime "created_at",null: false
t.integer "room_id"
t.integer "teacher_id"
t.integer "course_id"
t.index ["course_id"],name: "index_lessons_on_course_id"
t.index ["room_id"],name: "index_lessons_on_room_id"
t.index ["teacher_id"],name: "index_lessons_on_teacher_id"
end
解决方法lesson = Lesson.create({
start_at: DateTime.new(2018,# is problematic with your model
course_id: nil}) # is problematic with your model
你的模型表明需要所有的关系. belongs_to :teacher,optional: true 作为可选. 并不是说这解决了你的问题,但它应该是正确的方向.要获得更多想法,您应该为教师,课程,房间和建筑提供图式. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读
