Я слежу за OmniAuth railscast и пытаюсь реализовать то же самое с authlogic + facebook вместо devise + twitter, как показано в railscast.
Может быть, мое понимание has_many
все еще не очень хорошее, но в рельсах у Райана есть следующий код в AuthenticationController
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. Authentication
возвращает массив []
, как я могу вызвать find_or_create_by_provider_and_uid
в массиве?
Моя реализация неверна? Разве has_many
не должен возвращать массив?
Я получаю ошибку в том, что я вызываю find_or_create_by_provider_and_uid
для объекта nil
.
текущий_пользователь.Authentication
не имеет значения, потому что у пользователя еще нет никаких аутентификаций.