【发布时间】:2020-06-11 19:58:53
【问题描述】:
我正在构建一个应用程序,我需要能够唱主唱 我需要防止 2 位老师共享特定班级的领导头衔
class CreateClassroomTeachers < ActiveRecord::Migration[5.2]
def change
create_table :classroom_teachers do |t|
t.belongs_to :classroom
t.belongs_to :teacher
t.boolean :lead, default: false
end
add_index :household_people, [:classroom_id, :teacher_id], unique: true
# Only one teacher in a classroom can be lead
end
end
我的模型中有这个
class ClassroomTeacher < ApplicationRecord
belongs_to :classroom
belongs_to :teacher
validate :only_one_is_lead_teacher
def only_one_is_lead_teacher
if lead
if ClassroomTeacher.where(classroom_id: classroom_id, lead: true).count > 0
errors.add(:lead, "There can only be one (1) lead teacher per classroom")
end
end
end
end
这方面的问题是,在创建时我可以让 2 位或更多位老师担任领导
感谢您的帮助
【问题讨论】:
-
一个老师可以带两个班吗?
-
是的 1 位老师可以带领 100 节课
-
你能解释一下吗:问题是在 Create 上我可以让 2 位或更多的老师担任领导。目前的状况检查对我来说看起来不错,因为将停止为每个教室创建多个潜在客户。
-
如果铅的目的是什么?条件检查,这个值在哪里定义。
-
每个教室只能有 1 位教师担任领导。您有领导和 2 或 3 位教师的帮助。但只有 1 人可以担任主讲老师。我有铅
t.boolean :lead, default: false的布尔值,但我不知道怎么说只有 1 可以是铅
标签: ruby-on-rails pg