2010-11-15 5 views
4

Je tente de mettre en place plan et omniauth en suivant https://github.com/plataformatec/devise/wiki/OmniAuth:-Overview et de déployer à heroku. Il n'y a pas d'erreur dans localhost, mais quand je pousse à heroku, le crash de l'application. Dans les journaux heroku, j'ai trouvé l'erreur 'utilisateurs non-initialisés' dans omniauth_callbacks_controller.rb. Comment initialiser les utilisateurs? J'ai heroku rake db: migrer déjà. Mais je ne peux pas exécuter heroku console parce que l'application plantage, donc je ne peux pas vérifier s'il existe un modèle d'utilisateur. Pour votre information, je produis le contrôleur par rails g omniauth_callbacks_controllerErreur constante non initialisée dans le contrôleur lors du déploiement à heroku

Dans 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) 

Dans 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 
+0

Êtes-vous sûr que votre modèle utilisateur est commettras et pousser? – shingara

+0

Dans localhost lorsque je 'rails c' et tapez irb (principal): 001: 0> Utilisateur => Utilisateur (id: entier, email: chaîne, mot de passe chiffré: chaîne, mot_de_sauvegarde: chaîne, mot_de_passe_retour_token: chaîne, chaîne_fichier: chaîne, remember_created_at: datetime, sign_in_count: entier, current_sign_in_at: datetime, last_sign_in_at: datetime, current_sign_in_ip: chaîne, last_sign_in_ip: string, created_at: datetime, updated_at: datetime) – wizztjh

+0

Donc je pense que c'est engagé et quand je vais pousser le maître heroku, ça se dit à ce jour, je fais ajouter git. et git commit -m "wateva" – wizztjh

Répondre

3

Êtes-vous que le modèle de l'utilisateur a été créé dans la base de données Heroku?

Dans votre terminal (et non les rails console!) Entrez

heroku rake db:migrate 

Ce migreront pour correspondre au code de DB de Heroku. Avez-vous encore l'erreur?

0

Heroku a besoin de migrer avec le modèle, donc vous devez exécuter

heroku rake db:migrate 

puis rafraîchir votre page, maintenant son travail :)

Questions connexes