2

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

誰もこれを行う方法を知っていますか?

ありがとう!

4

2 に答える 2

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 ルートを実行すると、変更可能な残りの部分が表示されますが、これがリストの最初であり、すべて正しく機能します :) 楽しんでください!

于 2010-11-16T21:44:42.250 に答える
0

Rails 4とdeviseの最新バージョンで上記のアプローチを試してみましたが、うまくいきませんでしたが、こちらのドキュメントでルートの構成に関する解決策を見つけました。同様のアプローチですが、マッチの代わりにルート ファイル内で 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 に答える