У меня есть следующие модели валидация ...Дисплей флэш-сообщение с моделью валидаций
validates :event_id, :uniqueness => {:scope => :email}
validates_format_of :email, :with => /\A[^@][email protected]([^@\.]+\.)+[^@\.]+\z/
validates_presence_of :email, :first_name, :last_name
..И вот мой контроллер ...
def register_learner
@event = Event.find(params[:event_id])
begin
EventRegistration.create! first_name: params[:first_name], last_name: params[:last_name], email: params[:email], event_id: params[:event_id]
rescue ActiveRecord::RecordInvalid => e
end
end
Этот код работает, но проблемы есть он тихо ловит ошибки. Я хотел бы отобразить флэш-сообщение для пользователя и на текущей странице. Так что я попытался это ...
def register_learner
@event = Event.find(params[:event_id])
begin
@registation = EventRegistration.create! first_name: params[:first_name], last_name: params[:last_name], email: params[:email], event_id: params[:event_id]
rescue ActiveRecord::RecordInvalid => e
if [email protected]?
flash[:notice] = @registation.errors
end
end
end
... но я получаю сообщение undefined method `valid?' for nil:NilClass
если проверка не пройдена.
Нет проблем. Вы пропустили «конец». ;) –