解析逗号分隔值

问题描述 投票:0回答:4

我想在 Ruby on Rails 中解析 url 参数中的逗号分隔值。

例如如何解析以下内容?

http://example.com/?fields=1,2,3

我希望能够在我的控制器中使用 params[:fields] 。这是创建一个数组吗?我应该使用 for 循环吗?

ruby-on-rails ruby ruby-on-rails-3
4个回答
11
投票
foo = params[:fields].split(',')

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) } 

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


0
投票

extract_value(Rails 7.1+)

Rails 7.1 引入了一种名为

extract_value
的新方法,它完全满足您的需要,它返回给定
key
的参数值,并用
delimiter
分隔。

所以现在,您可以编写如下内容:

fields = params.extract_value(:fields)

fields = params.extract_value(:fields, delimiter: ",") 

来源:

© www.soinside.com 2019 - 2024. All rights reserved.