2011-06-26 3 views
0

Rails 2.3.5Concaténation de deux champs dans une collection

Je n'ai aucune chance de trouver une réponse à ce sujet. Je sais que je pourrais juste écrire une instruction sql manuelle avec une concat, mais j'ai pensé que je demanderais:

Pour charger un select, je cours une requête d'enregistrements de décalage. J'essaie de faire en sorte que la valeur de la date de sélection soit décalée, suivie d'un espace, puis du nom du quart de travail. Je ne peux pas comprendre la syntaxe pour faire une concat de deux champs dans une collecte. Les docs Ruby font ressembler les signes plus et les guillemets doubles devraient fonctionner dans une collecte, mais tout ce que j'essaye obtient une erreur "attendue numérique" de Rails.

@shift_list = [a find query].collect{|s| [s.shift_date + " " + s.shift_name, s.id]} 

Merci pour toute aide - très appréciée.

+1

'shift_date' est-il un' String', ou un 'DateTime' ou' Date'? – d11wtq

Répondre

8

Difficile à dire sans savoir ce que s va être ou quel type s.shift_date et s.shift_name sont, mais vous êtes peut-être à la recherche de ceci:

collect{|s| ["#{s.shift_date} #{s.shift_name}", s.id]} 

C'est à peu près la même chose que:

collect{|s| [s.shift_date.to_s + ' ' + s.shift_name.to_s, s.id]} 

mais moins bruyant.

+0

génial - merci! – Reno

Questions connexes