Неинициализированная постоянная ошибка в контроллере при развертывании на героку - PullRequest
4 голосов
/ 15 ноября 2010

Я пытаюсь настроить устройство и всевозможные действия, следуя указаниям https://github.com/plataformatec/devise/wiki/OmniAuth:-Overview, и развернуть на героку.В localhost нет ошибки, но когда я нажимаю на heroku, приложение вылетает.В логах heroku я обнаружил ошибку «неинициализированные постоянные пользователи» в omniauth_callbacks_controller.rb.Как мне инициализировать пользователей?У меня есть геройские грабли дб: мигрируй уже.Но я не могу запустить консоль heroku из-за сбоя приложения, поэтому я не могу проверить, есть ли модель User.Для вашей информации, я генерирую контроллер по rails g omniauth_callbacks_controller

In heroku logs

/disk1/home/slugs/338566_ad6243a_bbb1-19eae435-d901-44ba-9dd5-baf36d656448/mnt/app/controllers/omniauth_callbacks_controller.rb:1: uninitialized constant Users (NameError)

In omniauth_callbacks_controller.rb

class Users::OmniauthCallbacksController < Devise::OmniauthCallbacksController
  def facebook
    @user = User.find_for_facebook_oauth(env["omniauth.auth"], current_user)

    if @user.persisted?
      flash[:notice] = I18n.t "devise.omniauth_callbacks.success", :kind => "Facebook"
      sign_in_and_redirect @user, :event => :authentication
    else
      session["devise.facebook_data"] = env["omniauth.auth"]
      redirect_to new_user_registration_url
    end
  end
end

Ответы [ 2 ]

3 голосов
/ 26 ноября 2010

Вы уверены, что модель User была создана в базе данных Heroku?

В вашем терминале (НЕ в консоли рельсов!) Введите

heroku rake db:migrate

Это перенастроит базы данных Heroku в соответствии с вашим кодом. У вас все еще есть ошибка?

0 голосов
/ 05 июня 2013

Heroku нужно перенести с моделью, поэтому вам нужно запустить

heroku rake db:migrate

, затем обновить страницу, теперь она работает:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...