Как мне объединить записи и отделить их с помощью "-" - PullRequest
0 голосов
/ 01 апреля 2011

Я хочу объединить записи вместе и разделить их с помощью "-"

Я знаю, как объединить записи одной таблицы вместе, например:

@keywords = @tweet.hash_tags.join("-")

Но что, если это таблицы, связанные с HABTM?.

Например.

// BRAND MODEL
has_and_belongs_to_many :categories

// CATEGORY MODEL
has_and_belongs_to_many :brands

Если я сделаю это:

@brands = Brand.all  
@brand_categories = @brands.categories.join("-")

Я получу такой результат:

#<Category:0x0000010445c928>,#<Category:0x0000010445c7c0>,#<Category:0x0000010445c5e0>,#<Category:0x0000010445c400>,#<Category:0x0000010445c270>

Надеюсь, вы понимаетемой вопрос - спасибо.

Ответы [ 2 ]

0 голосов
/ 01 апреля 2011

#join вызовет #to_s для элементов в Array, возвращаемых @brands.categories по умолчанию, и это не похоже на то, что вы определили пользовательский Category#to_s.Либо сделайте это, либо будьте более точны в отношении желаемого строкового представления;если, например, Category имеет атрибут title, вы можете использовать:

@brands_categories = @brands.categories.map(&:title).join("-")
0 голосов
/ 01 апреля 2011

Предполагая, что у вашей таблицы Category есть поле name:

@brand_categories = @brands.categories.collect(&:name).join("-")

Это поместит все значения name в массив, а затем объединит их.

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