首先,感谢大家花时间阅读这篇文章。非常非常感谢提前。
我目前正在为课程建立一个小型注册系统。我在我的注册控制器中使用“validates :user_id, :uniqueness => {:scope => :occurrence_id}”来阻止用户通过模型注册两次相同的事件。我想通过灰色的“注册”按钮将此扩展到我的视图。
我认为最好的方法是在发生模型中编写一个方法,如下所示:
def already_registered?(user)
if user.id == self.registrations.find()
false
else
true
end
end
现在我确定这是行不通的。如果当前用户没有注册一个事件,我如何搜索?
模型/注册.rb
class Registration < ActiveRecord::Base
belongs_to :user
belongs_to :occurrence
attr_accessible :occurrence_id, :registration_date, :user_id, :occurrence, :user
validates :user_id, :uniqueness => {:scope => :occurrence_id}
end
模型/occurrence.rb
class Occurrence < ActiveRecord::Base
belongs_to :course
belongs_to :location
has_many :registrations
has_many :users, :through => :registrations
validates :price, :presence => true
attr_accessible :course_id, :datetime_end, :datetime_start, :location_id, :price, :teacher_id, :class_size
def remaining_seats
self.class_size - self.registrations.count
end
end