RoR: создание / обновление: отображение ошибок валидации при сохранении предыдущих значений - PullRequest
2 голосов
/ 01 октября 2008

У меня есть базовая модель, в которой я указал некоторые поля для проверки наличия. в действии создания в контроллере я делаю стандарт:

@obj = SomeObject.new(params[:some_obj])

if @obj.save
  flash[:notice] = "ok"
  redirect...
else
  flash[:error] = @obj.errors.full_messages.collect { |msg| msg + "<br/>" }
  redirect to new form
end

однако, когда я перенаправляю на новую форму, появляются ошибки, но поля пусты. Есть ли способ заполнить поля введенными значениями, чтобы ошибки можно было легко исправить?

Ответы [ 2 ]

5 голосов
/ 01 октября 2008

Вы render :action => :new вместо перенаправления.

1 голос
/ 02 октября 2008

Захватите также @obj во флэш-хэш, а затем проверьте его в действии new.

@obj = SomeObject.new(params[:some_obj])

if @obj.save
  flash[:notice] = "ok"
  # success
else
  flash[:error] = @obj.errors.full_messages.collect { |msg| msg + "<br/>" }
  flash[:obj] = @obj
  # redirect to new form
end

В new:

@obj = flash[:obj] || MyClass.new
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...