我在Rails中使用Devise gem,并希望改变用户注册期间发生的操作。我错误的定制看起来像这样:
devise_for :users, :controllers => { :registrations => "users/registrations" } do
post "/", :to => "users/registrations#create_from_admin"
end
导致:
[bbrasky@admins-MacBook-Pro-2:~/Projects/my_app(master)]$ rake routes
POST /users(.:format) {:controller=>"users/registrations", :action=>"create"}
有谁知道怎么做?
谢谢!
答案 0 :(得分:1)
以下是我能够使用Devise路线来定制所有这些
devise_for :users, :as => "", :path_names => { :sign_in => "login", :sign_out => "logout", :sign_up => "register" }
match "login" => "devise/sessions#new", :as => :new_user_session
match "logout" => "devise/sessions#destroy", :as => :destroy_user_session
match "register" => "devise/registrations#new", :as => :new_user_registration
如果您运行rake路线,您将看到可以修改的其余部分,但这是列表的开头,它们都正常工作:)玩得开心!
答案 1 :(得分:0)
尝试使用最新版本的rails 4设计上面的方法并且它对我不起作用,但是在文档here中找到了配置路由的解决方案。类似的方法,但在routes文件中使用devise_scope而不是匹配。希望它可以帮助别人。
devise_for :users, :path_names => { :sign_in => "login", :sign_out => "logout", :sign_up => "register" }
devise_scope :user do
get "login", to: "devise/sessions#new"
get "logout", to: "devise/sessions#destroy"
get "register", to: "devise/registrations#new"
end