start_time
私はタイムスタンプ付きのレールモデルを持っています。これは明らかに将来のものである必要があり、これは私の検証が保証するものです。
予定.rb
validate :start_time_in_future, :on => :create
private
def start_time_in_future
errors.add(:base, 'Start time must be in the future') unless self.start_time > Time.now
end
任命_controller.rb
around_filter :start_time_in_future
def create
@appointment = Appointment.create(foo_params)
redirect_to @appointment
end
private
def start_time_in_future
begin
yield
rescue ActiveRecord::RecordInvalid => e
redirect_to request.referrer, :alert => e.message
end
end
そして、それはすべて正常に機能しますが、それは非常にやり過ぎです。例外ではなくメッセージで失敗するカスタム検証を行うことはできませんか?