2

我将 Devise gem 与 Rails 一起使用,并希望更改用户注册期间发生的操作。我的错误自定义如下所示:

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"}

有谁知道如何做到这一点?

谢谢!

4

2 回答 2

1

这是我能够使用设计路线来定制所有路线的方法

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 路线,您将看到可以修改的其余部分,但这是列表的开始,它们都可以正常工作:) 玩得开心!

于 2010-11-16T21:44:42.250 回答
0

使用最新版本的 rails 4 尝试了上述方法并进行了设计,但它对我不起作用,但在此处的文档中找到了配置路由的解决方案。类似的方法,但在路由文件中使用 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
于 2014-04-29T11:08:35.103 回答