解析逗号分隔的值

4
我想在Ruby on Rails中解析URL参数中的逗号分隔值。
例如,如何解析以下内容?
http://example.com/?fields=1,2,3

我想在我的控制器中使用params[:fields]。那是创建一个数组吗?我应该使用for循环吗?
3个回答

11
foo = params[:fields].split(',')

如果它只有一个1a值,会产生错误吗?迭代foo的最有效方法是什么? - glarkou
不会产生错误。如果没有分隔符,拆分字符串只会返回一个具有一个元素的数组。如果您想对每个元素执行操作,则使用#each进行迭代可能是最好的选择。 - Paul Prestidge
感谢chron的评论。 - glarkou

3
> a = "1,2,3"
 => "1,2,3" 
> a.split(',')
 => ["1", "2", "3"] 
> a.split(',').each {|element| p element}
"1"
"2"
"3"
 => ["1", "2", "3"] 
> a.split(',').map(&:to_i)
 => [1, 2, 3] 

0

foo = params[:fields].split(',').map { |i| Integer(i) }

这将把fields参数转换为整数,并且如果您希望它们是整数,则会验证您的fields参数。如果不是这种情况,将引发一个参数错误。(例如:http://example.com/?fields=1,2,test


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接