рельсы 3: как построить строку, объединяющую все значения одного поля, без итерации? - PullRequest
0 голосов
/ 23 августа 2011

Если в моей таблице Foo есть поле :code

Если в Foo есть 3 записи с: code = "AAAA", "BBBB" и "CCCC"

Я пытаюсь построитьстрока

"AAAA_BBBB_CCCC"

(я передаю набор значений полей во внешнюю программу через URL, и именно так она ожидает, что ей будут переданы несколько значений)

Doing

Foo.select("code").join("_")

не работает, потому что объединенные элементы не являются фактическим значением «кода», а представляют собой некоторый тип хэша или ассоциации, который имеет атрибут «код»

Ответы [ 2 ]

2 голосов
/ 23 августа 2011

возможно

Foo.select("code").map(&:code).join("_")

, но это неправильно без итерации ...

1 голос
/ 23 августа 2011

Я думаю, вы могли бы решить эту проблему с помощью метода med_of вместо простой конкатенации http://api.rubyonrails.org/classes/ActiveRecord/Aggregations/ClassMethods.html http://apidock.com/rails/ActiveRecord/Aggregations/ClassMethods/composed_of

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...