Я следую OmniAuth railscasts и пытаюсь реализовать то же самое с authlogic + facebook вместо devise + twitter, как показано в railscast.
Возможно, мое понимание has_many
все еще не очень хорошо, но в Railscasts у Райана есть следующий код в AuthenticationsController
def create
auth = request.env["rack.auth"]
current_user.authentications.find_or_create_by_provider_and_uid(auth['provider'], auth['uid'])
flash[:notice] = "Authentication successful."
redirect_to authentications_url
end
В моей реализации current_user.authentications
возвращает массив []
как я могу вызвать find_or_create_by_provider_and_uid
для массива?
Моя реализация неверна? has_many
не должен ли возвращать массив?
Ошибка, которую я получаю, заключается в том, что я звоню find_or_create_by_provider_and_uid
на nil
объект.
current_user.authentications
- ноль, потому что у пользователя еще нет аутентификаций.