2010-03-17 5 views

Répondre

2

ActiveRecord crée des moteurs de recherche dynamiques basés sur les colonnes de votre base de données. Ainsi, par exemple si vous avez un utilisateur avec un attribut nom d'utilisateur puis crée activerecord un certain nombre de trouveurs dynamiques:

find_by_username 
find_or_initialize_by_username #=> calls new if not found 
find_or_create_by_username #=> calls create if not found 

Vous pouvez enchaîner quelques attributs ensemble comme

find_by_username_and_email 

Pour revenir à votre problème - Je suppose que vous n'avez pas exécuté une migration requise qui ajoute le facebook_id à votre table d'utilisateurs dans la base de données et par conséquent ActiveRecord n'ajoute pas le finder dynamique pour facebook_id à la classe.

+0

J'ai ce même problème de facebook_id n'étant pas ajouté sur le db. J'ai exécuté bundle exec rake db: migrate et possède 2 bases de données. J'utilise aussi SQLite. Est-ce que cela pourrait être la raison? Je reçois l'erreur mentionnée ci-dessus, OU, 'Vous avez un objet nul quand vous ne l'attendiez pas! Vous avez peut-être attendu une instance de Array. L'erreur est survenue lors de l'évaluation de zéro [] '... lorsque j'ai changé le code un peu, ce qui signifie que mon tableau d'informations est vide. Je pense que cela me ramène à ce raisonnement. – Tony