何よりもまず、この投稿を読むために時間を割いてくれたすべての人に感謝します。よろしくお願いします。
私は現在、クラスの小さな登録システムを構築しています。登録コントローラーの「validates:user_id、:uniqueness => {:scope =>:occurrence_id}」を使用して、ユーザーが同じイベントに2回登録するのを停止しています。「登録」ボタンをグレー表示して、これを自分のビューに拡張したいと思います。
最善の方法は、オカレンスモデルに次のようなメソッドを作成することだと思います。
def already_registered?(user)
if user.id == self.registrations.find()
false
else
true
end
end
今、私はこれが機能しないことを確かに知っています。現在のユーザーが登録していないオカレンスが1つあるかどうかを検索するにはどうすればよいですか?
モデル/登録.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
models /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