如何将记录连接在一起并用“ - ”分隔它们

时间:2011-03-31 20:54:40

标签: ruby-on-rails-3

我想一起加入记录并用“ - ”

分开

我知道如何将一个表记录连接在一起:

@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 :(得分:0)

假设您的Category表格中有name字段:

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

这会将所有name值放入一个数组中,然后加入它们。

答案 1 :(得分:0)

默认情况下,

#join会对#to_s返回的Array中的项目进行@brands.categories调用,看起来您没有定义自定义Category#to_s 1}}。要么这样做,要么更明确你想要的字符串表示;例如,如果Category具有title属性,则可以使用:

@brands_categories = @brands.categories.map(&:title).join("-")