No sé cuando sucedió, pero estoy recibiendo este error NoMethodError (undefined method 'to_key' for :user:Symbol)
Heroku, idearán: Getting 'NoMethodError (método no definido `to_key' para: usuario: Símbolo)'
Este comportamiento sólo ocurre en Heroku Cedar apilar. Uso Devise (1.4.2) para la autenticación a través de Facebook en Rails 3.1.0.rc6 y ruby 1.9.2-p290. Ocurre en la línea con sign_in_and_redirect(:user, authentication.user)
. Aquí está mi método:
def create
omniauth = request.env['omniauth.auth']
authentication = Authentication.find_by_provider_and_uid(omniauth['provider'], omniauth['uid'])
if !authentication.nil?
flash[:notice] = I18n.t('devise.omniauth_callbacks.success', kind: omniauth['provider'])
sign_in_and_redirect(:user, authentication.user)
elsif current_user
current_user.authentications.create!(provider: omniauth['provider'], uid: omniauth['uid'])
redirect_to profile_path, notice: I18n.t('devise.omniauth_callbacks.success', kind: omniauth['provider'])
else
user = User.new
user.apply_omniauth(omniauth)
if user.save
flash[:notice] = I18n.t('devise.omniauth_callbacks.success', kind: omniauth['provider'])
sign_in_and_redirect(:user, user)
else
session[:omniauth] = omniauth.except('extra')
redirect_to new_user_registration_url
end
end
end
Tuve el mismo problema pero con 'método indefinido' encrypted_password = ''. El reinicio funcionó para mí también - gracias –
¡Gracias! Tuve el mismo problema que 'NoMethodError (método indefinido '...' y esto me solucionó el problema. –
Eso fue lo que hizo. ¡Gracias! – TinkerTank