从我的rake routes
user_registration POST /users(.:format) devise/registrations#create
new_user_registration GET /users/sign_up(.:format) devise/registrations#new
因此,当我单击注册表中的提交按钮时,它会将我移动到/users
。
我怎样才能让user_registration POST
变成/users/sign_up(.:format)
呢?我尝试了这样的东西:
devise_for :users
as :user do
post 'sign_up' => 'devise/registrations#create', as: 'user_registration'
end
但是存在冲突,因为devise_for
已经生成了user_registration
前缀
发布于 2013-10-30 05:14:23
要执行所需操作,您需要停止生成默认的registrations#create操作。不幸的是,没有简单的方法来做到这一点(或自定义它)。我能找到的最好的方法是跳过为用户生成注册路由,稍后使用devise_scope方法定义所有的注册路由:
devise_for :users, skip: :registration
devise_scope :user do
resource :registration, :as => :user_registration, :only => [ :new, :edit, :update, :destroy ], :path=> "/users", :path_names=> { :new =>"sign_up" }, :controller=>"devise/registrations" do
get :cancel
post :sign_up, action: :create, as: ''
end
end
这可能会被清理一下,但它会生成您所期望的结果:
user_registration POST /users/sign_up(.:format) devise/registrations#create
new_user_registration GET /users/sign_up(.:format) devise/registrations#new
在this thread中讨论了与P.S.相关的问题
https://stackoverflow.com/questions/19655831
复制相似问题