7
votes

Rails Activerecord Trouver dans la console

Quand je suis dans les rails 3.2 console, je peux le faire juste bien: xxx

et il imprime le nom de famille.

mais quand j'essaie de Trouvez-le par le ID , il est capable de localiser le célibataire Enregistrez et stockez-le dans ma variable p , mais je ne peux pas imprimer le last_name colonne. Par exemple: xxx

Impression p ici montre toutes les colonnes mais p.last_name dit ceci < Pré> xxx

toute aide serait appréciée.


0 commentaires

4 Réponses :


14
votes

A où code> requête retournera un activeCord: : Relation code> , qui agit comme une matrice, même si vous limitez le nombre d'enregistrements retournés.

Si vous modifiez plutôt votre requête sur: P>

p = Person.find_by_id(34) # Returns nil if Person with id 34 does not exist. Does *not* throw an exception.


2 commentaires

Oui, vrai, mais je ne voulais pas confondre la situation plus loin.


p = personne.find_by_id (34) pour la victoire. Merci.



1
votes

Qu'est-ce que vous recherchez probablement réellement est

@person = Person.find(34)
@person.last_name


0 commentaires

4
votes

Ceci renvoie une collection d'objets d'enregistrement actifs: xxx

mais il n'y en a qu'un avec id = 34, c'est donc une collection de 1.

la voie à faire C'est: xxx

ou, meilleur: xxx

ou, encore mieux: xxx


0 commentaires

0
votes

Dans votre case est une classe et il est hérité de l'applicationRecord xxx

il renvoie juste le résultat de la requête et non de l'objet.

Vous pouvez vérifier En utilisant xxx

afin que vous ne puissiez pas utiliser p.last_name ou p.first_name sur p.


0 commentaires