Я работаю над относительно простым веб-сайтом (в настоящее время) с одним ресурсом. У меня есть форма на GET /maps/new
, которая отправляет данные для новой карты на POST /maps
, которая после завершения перенаправляет на GET /maps/:id
. Проблема здесь в том, что если проверка не удалась, она отображает форму новой карты, поэтому URL-адрес по-прежнему /maps
. Но перенаправление на /maps/new
теряет ошибки валидации (и данные карты, которые они ранее вводили).
Это мой первый настоящий веб-сайт на Rails, так что я уверен, что это, наверное, что-то простое, что мне не хватает. Вот мои действия new
и create
, которые практически не изменились по сравнению с созданными лесами:
def new
@map = Map.new
respond_to do |format|
format.html # new.html.erb
format.xml { render :xml => @map }
end
end
def create
@map = Map.new(params[:map])
respond_to do |format|
if @map.save
flash[:notice] = 'Map was successfully created.'
format.html { redirect_to(@map) }
format.xml { render :xml => @map, :status => :created, :location => @map }
else
format.html { render :action => 'new' }
format.xml { render :xml => @map.errors, :status => :unprocessable_entity }
end
end
end
Как я могу заставить URL-адрес оставаться на /maps/new
для формы, а также поддерживать данные промежуточной формы и ошибки?