Неправильный маршрут после неудачного создания ресурса - PullRequest
0 голосов
/ 25 октября 2011

с этим контроллером:

def create
@company = Company.new(params[:company])
respond_to do |format|
  if @company.save
    format.html { redirect_to @company, notice: 'Company was successfully created.' }
    format.json { render json: @company, status: :created, location: @company }
  else
    format.html { render action: "new" }
    format.json { render json: @company.errors, status: :unprocessable_entity }
  end
end
end

Кто-нибудь знает, почему после попытки сохранить запись, которая не прошла валидацию, rails приводит к «новому» действию, но URL, отображаемый на панели браузера, является маршрутом для индекса (то есть, / companies )

Ура !!

1 Ответ

0 голосов
/ 25 октября 2011

Действие create происходит, когда вы POST набираете /companies. Когда происходит сбой, вместо перенаправления на новую страницу он просто отображает действие new. Это стандартно для REST-действий Rails.

Вы увидите похожее поведение при обновлении записи. Форма редактирования отправит запрос PUT на ресурс компании (например, /companies/1), и если он не пройдет валидацию, он выполнит действие edit вместо того, чтобы перенаправить на /companies/1/edit.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...