witam,
próbuje zmienić url do którego uzytkownik ma być przekierowany po rejestracji. Zrobiłem klasę dziedziczącą w controllers/users ale niestety nie łapie coś
class Users::RegistrationsController < Devise::RegistrationsController
def after_inactive_sign_up_path_for(resource)
tutaj_moja_scieżka
end
dzięki ale niestety nie pomogło, czy jest jakiś sposób żeby prześledzić metoda po metodzie jak idzie tak akcja, coś jak info które pojawia się gdy jest jakiś bład ?
[quote]user_registration_pl POST /uzytkownik(.:format) {:controller=>“users/registrations”, :action=>“create”}
new_user_registration_pl GET /uzytkownik/zarejestruj(.:format) {:controller=>“users/registrations”, :action=>“new”}[/quote]
inne pytanie, czy można jakoś przechwycic moment gdy tworzony jest komunikat flash po zalogowaniu i wpisać coś innego w zależności od sytuacji ? Zaczynam powoli dochodzić do wniosku że Devise jest fajne, ale gdy używa się go raczej standardowo i za wiele nie kombinuje, gdy trzeba coś zrobić po swojemu to już gorzej
Tworzysz RegistrationsController, ktory dziedziczy po Devise::RegistrationsController, ustawiasz routes, a potem w nim redefiniujesz akcje create. Czyli wklejasz:
[code] def create
build_resource
if resource.save
if resource.active?
set_flash_message :notice, :signed_up
sign_in_and_redirect(resource_name, resource)
else
set_flash_message :notice, :inactive_signed_up, :reason => resource.inactive_message.to_s
expire_session_data_after_sign_in!
redirect_to after_inactive_sign_up_path_for(resource)
end
else
clean_up_passwords(resource)
render_with_scope :new
end
chyba tak będzie trzeba zrobić, mała uwaga kod który podałeś jest z gita i wywala błąd jesli Devise jest zainstalowany bundlerem z rubygems, tam funkcja set_flash_message ma dwa argumenty, wiec trzeba ten kod skopiowac z katalogu bundlera albo instalowac Devise z gita, ale to chyba ryzykowne ? Tu jest kod
[quote]def create
build_resource
if resource.save
set_flash_message :notice, :signed_up
sign_in_and_redirect(resource_name, resource)
else
clean_up_passwords(resource)
render_with_scope :new
end
end[/quote]
To przy okazji wyjaśnia pierwotny problem, tam poprostu nie ma wywołania after_inactive_sign_up_path_for
def after_sign_in_path_for(resource)
admin_path # tutaj definiujesz sobie gdzie chcesz uciec po poprawnym zalogowaniu
end
def after_sign_out_path_for(resource)
admin_path # a tutaj definiujesz po wyglogowaniu
end