मैं क्या करना चाहता हूं एक बार जब उपयोगकर्ता पुष्टिकरण लिंक पर क्लिक करता है - और उनके खाते को सफलतापूर्वक पुष्टि की जाती है - उन्हें किसी विशेष पथ पर रीडायरेक्ट किया जाना चाहिए, अगर उनके पास कोई विशेष भूमिका है User
मॉडल पर after_create
कॉलबैक में असाइन किया गया, जिसे सफलतापूर्वक असाइन किया गया है)।उपयोगकर्ता ने पुष्टि की पुष्टि के बाद रीडायरेक्ट पथ को ओवरराइड करना - डेविस
मैं एक RegistrationsController
बनाया है:
class RegistrationsController < Devise::RegistrationsController
protected
def after_sign_up_path_for(resource)
if resource.has_role? :seller
new_item_path
else
root_path
end
end
end
लेकिन, यह हमेशा root_path
पर रीडायरेक्ट .... भले ही, मैं पुष्टि कर ली है उपयोगकर्ता वास्तव में उस भूमिका में कौन है कि,।
संपादित करें 1
ऐसा लगता है कि पुष्टि अनुरोध RegistrationsController
को कभी नहीं भेजा जाता है:
Started GET "https://stackoverflow.com/users/confirmation?confirmation_token=KRwZ7MChtxxq4sxxkDLq" for 127.0.0.1 at 2013-05-07 03:52:56 -0500
Processing by Devise::ConfirmationsController#show as HTML
Parameters: {"confirmation_token"=>"KRwZ7MChtxxq4sxxkDLq"}
User Load (0.5ms) SELECT "users".* FROM "users" WHERE "users"."confirmation_token" = 'KRwZ7MChtxxq4sxxkDLq' LIMIT 1
(0.1ms) BEGIN
(0.5ms) UPDATE "users" SET "confirmation_token" = NULL, "confirmed_at" = '2013-05-07 08:52:56.846852', "updated_at" = '2013-05-07 08:52:56.847730' WHERE "users"."id" = 9
(0.8ms) COMMIT
(0.1ms) BEGIN
(0.4ms) UPDATE "users" SET "last_sign_in_at" = '2013-05-07 08:52:56.852250', "current_sign_in_at" = '2013-05-07 08:52:56.852250', "last_sign_in_ip" = '127.0.0.1', "current_sign_in_ip" = '127.0.0.1', "sign_in_count" = 1, "updated_at" = '2013-05-07 08:52:56.853180' WHERE "users"."id" = 9
(0.7ms) COMMIT
Redirected to http://localhost:3000/
Completed 302 Found in 31ms (ActiveRecord: 3.2
संपादित 2
यह वही मेरी routes.rb
devise_for :users, :path_names => { :sign_up => "register",
:sign_in => "login",
:sign_out => "logout",
:settings => "settings" },
:controllers => { :registrations => "registrations" }
devise_scope :user do
get "login", :to => "devise/sessions#new"
get "register", :to => "registrations#new"
get "settings", :to => "devise/registrations#edit"
get "logout", :to => "devise/sessions#destroy"
end
क्या संसाधन उपयोगकर्ता के बराबर है – ahmet
मुझे विश्वास है। यही वह काम है जो उपयोग करता है। – marcamillion