【发布时间】:2016-03-25 16:00:39
【问题描述】:
您可以在下面的架构中看到,用户可以通过 course_completion 创建课程并为其提交时间和视频(如 youtube)。
我想做的是将用户的课程完成限制为 1 个,给定课程并基于属性“pov”(观点)
例如,对于“高海拔比赛”课程,用户只能拥有一个 pov=true 和/或一个 pov=false 的 course_completion
这意味着在创建课程完成时我必须检查它是否已经存在,并且在更新时我还必须检查它并销毁以前的记录(或更新它)。
我不知道我是否对我想要做的事情足够清楚,这可能是因为我不知道如何使用 rails 4 正确地做到这一点(除非使用大量代码行进行无用检查)。 我想把所有东西都放在一个 course_completion(normal_time、pov_time、normal_video、pov_video)中,但我不太喜欢这个主意:/
有人可以帮我解决这个问题吗?
感谢您的帮助!
这是我的课程:
class CourseCompletion < ActiveRecord::Base
belongs_to :course
belongs_to :user
belongs_to :video_info
# attribute pov
# attribute time
end
class Course < ActiveRecord::Base
belongs_to :user
end
class User < ActiveRecord::Base
has_many :courses
has_many :course_completions
end
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-4 associations primary-key limit