[英]rails devise - multiple register url
最初,我为一种类型的用户使用了设计注册。 工作得很好,但现在我加2个具体路线register/users
的拉姆达用户和register/pro
专业。
这两个路由使用相同的模型用户,只是更改了表单视图。
但是,当我提交表单时,如果失败,我将重定向到/users/
并且没有其他内容。
为此,我已经这样做了:
get '/register', to: 'devise/registrations#new', as: :register # original version
# and added :
get '/register/users', to: 'devise/registrations#new', as: :register_users
get '/register/professional', to: 'devise/registrations#new', as: :register_pro
但是,就像我说的,如果表格填写不正确,则只能追加到/users/
。
所以我也尝试添加这个:
post '/register/users' => 'devise/registrations#create', :as => :register
post '/register/professional' => 'devise/registrations#create', :as => :register
但结果相同。
我做错事了,有人想吗?
谢谢 !
编辑:
目前,问题在于,如果公式填写不正确, ./users
重定向到./users
而不是register/users
。 但是如果成功,它就可以了。
您需要在Controller(通常是ApplicationController)中覆盖after_sign_up_path_for
def after_sign_up_path_for(resource)
if resource.type == :pro # please modify this line
some_your_path
else
super # this will be /users/
end
end
我假设您有User
模型。 那么这个resource
就是用户对象。 我假设您在用户模型中有一些属性可以查找专业/非专业人士。 请将该属性用于'if'语句并编写路径。
如果使用Confirmable,则需要覆盖after_inactive_sign_up_path_for
而不是after_sign_up_path_for
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.