【发布时间】:2014-07-02 20:14:05
【问题描述】:
我创建了一个用户注册页面。当用户错误提交表单时,当显示验证错误时,它不会呈现在同一个 URL 上。
注册表单位于此网址:
http://localhost:3000/signup
我为注册页面添加了以下路由:
resources :users
match '/signup', to: 'users#new', via: 'get'
当我提交表单时,模型验证显示,但 url 重定向到:
http://localhost:3000/users
我希望用户在提交表单后保持相同的 url。
http://localhost:3000/signup
这是我的控制器代码:
def new
@user = User.new
end
def create
@user = User.new(user_params) # Not the final implementation!
if @user.save
# Handle a successful save.
else
render 'new'
end
end
这是我的表单的开始标签:
<%= form_for @user, url: {action: "create"} do |f| %>
【问题讨论】:
-
`匹配'/signup',到:'users#update',通过:'put',如:'signup'`
-
匹配 '/signup',到:'users#new',通过:'get',如:'signup' 不起作用:(
-
get 'signup' => 'users#new', as: :signupput 'signup' => 'users#update', as: :signup尝试将这些添加到您的路线并删除旧的。 -
现在正在工作.. 我在 4.0 工作
-
你不能在 Rails 4 中使用
match。你解决了这个问题还是需要帮助?
标签: ruby-on-rails forms ruby-on-rails-4 routes