我想在 Ruby on Rails 中解析 url 参数中的逗号分隔值。
例如如何解析以下内容?
http://example.com/?fields=1,2,3
我希望能够在我的控制器中使用 params[:fields] 。这是创建一个数组吗?我应该使用 for 循环吗?
foo = params[:fields].split(',')
> 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]
foo = params[:fields].split(',').map { |i| Integer(i) }
这会将字段参数转换为整数,并验证您的字段参数(如果您希望它们是整数)。如果不是这种情况,则会引发参数错误。(例如。 http://example.com/?fields=1 ,2,测试)
extract_value
的新方法,它完全满足您的需要,它返回给定 key
的参数值,并用 delimiter
分隔。
所以现在,您可以编写如下内容:
fields = params.extract_value(:fields)
fields = params.extract_value(:fields, delimiter: ",")
来源: