显示哈希的结果(类似于没有括号的地图)

时间:2014-03-03 14:55:32

标签: ruby-on-rails ruby

我想从查询中格式化结果哈希,如下所示:

notations = NotationItem.joins(:user).select(:name,:notation).where("movie_id = ?",self.id)

注意:NotationItem是用户和电影之间关系的多对多表格

:name来自User表,:来自NotationItem的符号

我可以用......

notations.map {|n| "#{n.name}: #{n.notation}"}

但是方括号输出格式对我来说无法使用。

从那一刻起我以为我可以使用

notations.each do |key, value|
        "#{key}: #{value}"
    end

但似乎我的哈希不是以正确的方式构建的。

抱歉,我要求满足这些基本需求......

2 个答案:

答案 0 :(得分:1)

您可以使用#join

notations.map do |n|
  "#{n.name}: #{n.notation}"
end.join(', ') # => "name1: notation1, name2: notation2"

答案 1 :(得分:1)

我假设您要打印结果。在哈希上执行.map会给你一个数组,而不是一个字符串。你可能想要这样的东西:

hash = {
  key1: 'value1',
  key2: 'value2'
}

p hash.map { |key, value| "#{key}: #{value}" }.join(", ")
# => "key1: value1, key2: value2"

如果需要,您可以将{ .. }替换为do .. end