Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何使用逗号连接整数,而不在末尾使用逗号_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails 如何使用逗号连接整数,而不在末尾使用逗号

Ruby on rails 如何使用逗号连接整数,而不在末尾使用逗号,ruby-on-rails,ruby,Ruby On Rails,Ruby,如果我这样做: users.each do |u| str += u.id.to_s + ',' end 我将以以下内容结束: 1,3,234,234, 是否有一种循环方式不会在末尾留下尾随的,'?我知道我可以在循环结束后咀嚼它,但我一直在寻找一种不必这样做的方法 users.map { |u| u.id.to_s }.join ',' 事实上,#join将为您提供#to#,因此,请仔细想想: users.map(&:id).join ',' 甚至更短: users.map

如果我这样做:

users.each do |u|
   str += u.id.to_s + ','
end
我将以以下内容结束:

1,3,234,234,
是否有一种循环方式不会在末尾留下尾随的
,'
?我知道我可以
在循环结束后咀嚼
它,但我一直在寻找一种不必这样做的方法

users.map { |u| u.id.to_s }.join ','
事实上,
#join
将为您提供
#to#
,因此,请仔细想想:

users.map(&:id).join ','
甚至更短:

users.map(&:id).join ','

是的,我想出来了,但在打字之前,我浪费了很多时间去查找“加入”。接得好。@DanneManne一点也不正确。在代码的“简单性”和“可读性”之间有一条实际的界线,这条线经常朝着前者的方向倾斜。并不是说你已经越过了这个特定的解决方案,但对于你的一般评论,我将不得不强烈反对。考虑到你的回答事实上对我有所帮助,我适当地提高了投票率。谢谢你能解释一下map在做什么吗?&:id是块?@Blankman:在文档中查找
Symbol\to\u proc
。基本上,它的功能相当于
{u | u.id}
。对了,Ruby应该有一个常见问题解答,用于查找容易遗漏的API文档位置<代码>&
总是关于将一个块转换成一个进程,或者,在本例中,将一个进程转换成一个块。
&
操作将尝试将任何非proc参数转换为带有#to_proc的proc。碰巧,如果您在核心API文档中查找
类符号
,您会发现
#to_proc
,它是一个带有单个方法调用的块的缩写。