我想使用OmniAuth,並根據瑞安貝茨,我應該在我的routes.rb
文件中指定以下devise_for
範圍覆蓋設計登記控制器:如何在我的路由文件中鏈接devise_for調用? - Rails的3.1
devise_for :users, :controllers => {:registrations => 'registrations'}
然而,根據Devise's
文檔,如果我定製path_names,所以不是做mydomain.com/users/sign_up/
,我可以做mydomain.com/register
,我會做這樣的事情:
devise_for :users, :path_names => { :sign_up => "register", :sign_in => "login", :sign_out => "logout", :settings => "settings", :newpass => "newpass", :changepass => "changepass" }
我試圖鏈兩者是這樣的:
devise_for :users, :controllers => {:registrations => 'registrations'}, :path_names => { :sign_up => "register", :sign_in => "login", :sign_out => "logout", :settings => "settings", :newpass => "newpass", :changepass => "changepass" }
但這不起作用。爲了讓我去看我的views/registrations/new.html.erb
,我必須去mydomain.com/users/register
。如果我去mydomain.com/register
它仍然從/views/devise/registrations/new.html.erb
服務它。
我該如何獲得mydomain.com/register
指向/views/registrations/new.html.erb
?
謝謝。
完善這個作品...我只是有一個問題,這是我的'routes.rb'現在的樣子:'devise_for:用戶:控制器=> {:註冊=> '註冊'}'' devise_scope:user do get「login」,:to =>「devise/sessions#new」 get「register」,:to =>「registrations#new」 \t \t get「settings」,:to =>「registrations #edit」 得到 「註銷」,:要=> 「設計/會話#消滅」 \t \t GET 「newpass」:以=> 「設計/密碼#新」 \t \t得到 「changepass」,\t:to =>「devise/passwords#edit」 end' – marcamillion
鑑於我將'devise_for'中的所有請求發送到控制器'registrations',我必須爲那些不在'registrations'中的操作做任何不同的事情嗎? ?即'註銷,更換通行證,登錄等'? – marcamillion
請參閱上面的編輯部分 –