Ruby on rails 显示哈希的结果(类似于不带括号的映射)
我想格式化查询的结果哈希,如下所示:Ruby on rails 显示哈希的结果(类似于不带括号的映射),ruby-on-rails,ruby,Ruby On Rails,Ruby,我想格式化查询的结果哈希,如下所示: hash = { key1: 'value1', key2: 'value2' } p hash.map { |key, value| "#{key}: #{value}" }.join(", ") # => "key1: value1, key2: value2" notations=NotationItem.joins:user.select:name,:notation.wheremovie\u id=?,self.id 注意:Not
hash = {
key1: 'value1',
key2: 'value2'
}
p hash.map { |key, value| "#{key}: #{value}" }.join(", ")
# => "key1: value1, key2: value2"
notations=NotationItem.joins:user.select:name,:notation.wheremovie\u id=?,self.id
注意:NotationItem是用户和电影之间关系中的多对多表
:name来自用户表,:notation来自NotationItem
我可以用
notations.map {|n| "#{n.name}: #{n.notation}"}
但是方括号输出格式对我来说不可用
从那一刻起,我想我可以
notations.each do |key, value|
"#{key}: #{value}"
end
但我的散列似乎没有按正确的方式构建
对不起,我要求您提供这些基本需求…您可以使用:
我想你想打印结果。在散列上执行.map将得到一个数组,而不是一个字符串。你可能想要这样的东西:
hash = {
key1: 'value1',
key2: 'value2'
}
p hash.map { |key, value| "#{key}: #{value}" }.join(", ")
# => "key1: value1, key2: value2"
可以用do.替换{..}。。如果需要,请结束。原因?为什么要使用do..end..?对不起,我想说的是方括号输出格式,如[name1:notation1,name2:notation2]@Tabascow现在呢?你可以用join把数组变成字符串。我确实做到了,它解决了这个问题。我确实是以原始格式显示数组,在这种情况下显示括号。使用.join帮助我显示正确的输出。为什么方括号语法对我来说不可用?它有什么问题?我对括号语法没有问题,我的错,我想说方括号输出格式,如[name1:notation1,name2:notation2]好的,然后我可以看到它是由notations.map{n{n.name}:{n.notation}生成的。。不是吗?我的错,我只是简单地显示[]输出的数组原因。join方法帮助我在没有括号的情况下获得了正确的输出thk you不清楚你在问什么。只需向我们显示实际输出和预期输出。这是正确的,听起来好像我忘记了映射的结果是一个数组,我只是跳过了.join方法。非常感谢你的关注