Я бы начал с определения метода в модели, который возвращает любые конфликтующие события, например:
class Event
def conflicts
Event.where(...)
end
end
Затем, по вашему мнению, вы можете перебирать любые конфликты, если они есть, и отображать их настраницы.
Если вы хотите сделать это перед сохранением события в базе данных, то вы можете добавить некоторый javascript на страницу для POST данных события через AJAX вместе с параметром 'preview' и иметьконтроллер возвращает JSON-представление события, не сохраняя его.Ваш javascript будет отображать любые конфликты, если они есть.
Контроллер может выглядеть примерно так:
class EventsController
def create
@event = Event.new(params[:event])
unless params[:preview]
@event.save
end
respond_with @event, :include => :conflicts
end
end
Я оставлю вам javascript!:)