Rails 3 überschreiben Erarbeiten, Sitzungen controller
Muss ich überschreiben Erarbeiten, Sitzungen controller während des login-Prozesses (Rails 3.0.9, Ruby 1.9.2, Entwickeln 1.3.4), habe ich versucht, dieses ohne jede Wirkung
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
Ideen?
BEARBEITEN
Wie bereits in der Antwort, die ich auch brauchen, um die route zu ändern. Darüber hinaus habe ich auch müssen, kopieren Sie die Aussicht. Es ist besser hier erklärt
http://presentations.royvandewater.com/authentication-with-devise.html#8
Meine eigene Strategie:
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
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie verändert Ihre route mit Ihrem neuen controller?
devise_for :users
route zusätzlich zu den oben ändern? Ich will nicht zu überschreiben, die anderen Aktionen.devise_for
, und nach dem kopieren der Ansichten sollte es funktionieren, auch mit Aktionen, die Sie nicht überschreiben. Für deine andere Frage, ich bin mir nicht ganz folgenden. Sie haben die:database_authenticatable
option set in Ihrem Modell. (z.B. entwickeln :database_authenticatable):database_authenticable
schon immer da war, fürUser
. Ich habe auch eine benutzerdefinierte Strategie darüber hinaus finden Sie unter bearbeitete Frage für details.:database_authenticable
wenn es nicht gelingt, sich zu authentifizieren