Во-первых, я бы добавил параметры строки запроса к URL-адресу, который он публикует с контроллером, и действие, из которого он получился, примерно так:
# Using form_tag
<%= form_tag user_path(@user, :controller_name => controller.controller_name, :action_name => controller.action_name) do %>
# Using form_for
<%= form_for @user, :url => user_path(@user, :controller_name => controller.controller_name, :action_name => controller.action_name) do %>
Затем вы можете обновить эту строку в create
действие вашего контроллера, подобное этому:
render '#{params[:controller_name]}/#{params[:action_name]}'
Обновление
Я только что понял, что с помощью приведенного выше кода, будет отображаться правильное представление при первом сбое проверки, но если проверка завершится неудачно во второй раз, она попытается отобразить представление users/create
.Если вы хотите выбрать этот маршрут, вы не должны использовать controller.controller_name
и т. Д. В представлении, а правильно назначить @controller_name
и использовать эту переменную вместо этого.Однако это только добавляет к «излишнему» комментарию, сделанному Ксавье.