我有一个简单的设计注册表格与validatable
插件。如果用户忘了输入一个名字,它就会用红色的验证消息重定向他们。
问题是,它重定向到成功登录将使用户转到的相同路径(也就是说,它将用户重定向到/user
,而不是返回到/user/sign_up
)。如果用户基于任何原因刷新页面,则会出现No route matches [GET] "/user"
错误。
在注册失败时,我如何强迫重定向返回到原来的/user/sign_up
路由?我知道我可以在注册控制器中黑入create
操作,但是当我重定向到正确的路由时,就会丢失设计验证消息。
更新
看来问题在于设计处理respond_with
Rails 4 How Overwrite Devise Respond Path Upon Error的方法。看起来,Devise试图在/user上呈现一个/user模板,但我仍然不能覆盖它。
发布于 2018-03-12 04:18:09
首先,您可以使用以下命令创建控制器-
rails generate devise:controllers users
然后你必须修改你的路线来设计
# config/routes.rb
Rails.application.routes.draw do
devise_for :users,
:skip => [:registrations]
devise_scope :user do
get "user/sign_up", to: "users/registrations#new", as: :new_user_registration
post "user/sign_up", to: "users/registrations#create", as: :user_registration
end
end
希望这是工作。
https://stackoverflow.com/questions/49164028
复制相似问题