has_many возвращает массив вместо класса ActiveRecord

Я слежу за 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 не имеет значения, потому что у пользователя еще нет никаких аутентификаций.

6
задан Omnipresent 2 June 2011 в 18:52
поделиться