2010-03-29 2 views
0

J'utilise find_by_sql avec activerecord que je produis il un autre champ qui ne fonctionne pas dans la table d'origine comme une combinaison de différents domaines tels que:Comment faire utiliser activerecord un champ généré à la volée par find_by_sql

select (field1 + field2) as new_field_name 

Si je tente d'accéder au champ nouvellement généré comme:

@user.new_field_name 

Je reçois rien! Comment proposez-vous que je devrais aborder ce problème

Répondre

2

@user = select (field1 + field2) comme new_field_name

Cela return array bien que vous obtenez seulement un record.itearte une boucle sur @user

pour utilisateur dans @user
    met user.new_field_name ### cela devrait retourner une somme de field1 & field2 ###
fin
OU
si vous voulez 1er l'enregistrement puis

@user [0] .new_field_name

+0

Mais les valeurs stockées sont des nombres entiers! – Tam

+0

essayez ceci @user [0] .new_field_name parce que vous obtenez le tableau pas un seul objet si cela fonctionne, vous devez mettre limite ou itearte boucle sur @ user.please laissez-moi savoir si cela fonctionne ...... – Salil

+0

Merci ... L'une des raisons pour lesquelles cela n'a pas fonctionné, c'est que j'ai eu attr_accessor new_field_name dans le modèle. Cela a fonctionné après l'avoir enlevé – Tam

Questions connexes