我正在建立一个大学招生系统,学生可以申请最多5门课程。我设计这个的方法是拥有 Application 模型和 CourseApplication 模型。应用程序可以包含许多course_applications:
class Application < ActiveRecord::Base
# Assosciations
belongs_to :user
has_many :course_applications, dependent: :destroy
has_many :courses, through: :course_applications
has_one :reference
# Validations
validates :course_applications, presence: true
end
class CourseApplication < ActiveRecord::Base
# Intersection entity between course and application.
# Represents an application to a particular course, has an optional offer
# Associations
belongs_to :application
belongs_to :course
has_one :offer, dependent: :destroy
end
我想确保学生不能两次申请同一门课程。我已经做过一些研究但没有成功。这是制作申请的学生的用户界面:
Screenshot of application form
选择课程后,课程ID将添加到课程ID数组中:
def application_params
params.require(:application).permit(:user, course_ids: [])
end
现在学生可以选择两次相同的课程,我想阻止他们这样做。任何帮助深表感谢。
答案 0 :(得分:0)
对于rails侧,我会在data_sets.train = ScrollData(train_images, train_labels, dtype=tf.float32)
TypeError: object() takes no parameters
CourseApplication
供您参考,可在以下网址找到:http://guides.rubyonrails.org/active_record_validations.html#uniqueness
还建议在数据库端进行迁移
validates :course, uniqueness: { scope: :application }
对于表单上的验证,您必须编写javascript以确保选择了两个内容,这只会在有人尝试执行时返回错误。