8
muszę zastąpić opracować sesje kontrolera podczas procesu logowania (Rails 3.0.9, Ruby 1.9.2, 1.3.4) opracować, próbowałem to bez wpływuRails 3 przesłanianie opracować sesje kontroler
class SessionsController < Devise::SessionsController
# GET /resource/sign_in
def new
resource = build_resource
clean_up_passwords(resource)
respond_with_navigational(resource, stub_options(resource)){ render_with_scope :new }
end
end
Pomysły?
EDYTOWANIE Jak wskazano w odpowiedzi, muszę również zmienić trasę. Ponadto muszę również skopiować widoki. To lepiej wyjaśnione tutaj http://presentations.royvandewater.com/authentication-with-devise.html#8
Mam zwyczaj strategia:
devise.rb
config.warden do |manager|
manager.strategies.add(:custom_strategy) do
def authenticate!
... authenticate against 3rd party API...
if res.body =~ /success/
u = User.find_or_initialize_by_email(params[:user][:email])
if u.new_record?
u.save
end
success!(u)
end
end
end
Tak, właśnie to wymyśliłem i muszę również skopiować widoki, które wydaje. Czy oprócz powyższej zmiany zachowuję oryginalną ścieżkę 'devise_for: users'? Nie chcę przesłonić innych działań. –
Jest jeszcze jeden problem z tym, nie wykonuje również domyślnej strategii uwierzytelniania bazy danych oprócz dodawanej strategii niestandardowej, nie wiem, jak to naprawić. –
Powinno być tylko 1 'devise_for', a po skopiowaniu widoków powinien działać nawet z akcjami, których nie zastąpiłeś. Jeśli chodzi o inny problem, nie podążam za nim całkowicie. Czy masz ustawioną opcję ': database_authenticatable' w swoim modelu. (tj. wymyślić: database_authenticatable) – Olives