Rails 3.1 проверка вложенных форм - PullRequest
0 голосов
/ 09 октября 2011

Я использую Formtastic 2 для вложенной формы - у меня есть меню и модель питания, меню много раз, каждое блюдо принадлежит одному меню. Я добавил форму еды в меню «Показать действие», прямо под списком уже связанных блюд.

Создание блюд работает нормально, если проверка прошла успешно, я перехожу к действию меню, снова показывая список созданных блюд в списке.

Но когда блюда не проходят проверку и я снова перехожу к действию меню с соответствующим флэш-сообщением, мне бы очень хотелось заполнить форму данными, которые были представлены ранее, и отобразить ошибки рядом с ними.

Я пытался с этим перенаправлением:

redirect_to(menu_path(menu,@meal), :alert => 'The meal was not created')

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

1 Ответ

2 голосов
/ 09 октября 2011

Вы не должны перенаправлять после ошибок проверки, потому что вы потеряете все состояние. Просто старый шаблон сразу после неудачной проверки. Небольшое затруднение заключается в том, что вам нужно использовать flash.now[:alert], чтобы оно не переходило на следующую страницу.

Обычно вы будете иметь эту структуру :

def new
  @meal = Meal.new
end

def create
  @meal = Meal.new(params[:meal])
  if @meal.save
    flash[:notice] = "Meal was created"
    redirect_to menu_path(menu, @meal)
  else
    flash.now[:alert] = "The meal was not created"
    render :new
  end
end
...