2011-07-08 161 views
2

我想從Ruby on Rails中的URL參數中解析逗號分隔值。解析逗號分隔值

例如如何解析以下內容?

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

我想能夠在我的控制器中使用params [:fields]。那是創建一個數組?我應該使用for循環嗎?

回答

9
foo = params[:fields].split(',') 
+0

如果它只有1a的值呢?這會產生一個錯誤?迭代foo的最有效方法是什麼? – glarkou

+0

不,不會產生錯誤。將沒有分隔符的字符串拆分只返回一個包含一個元素的數組。如果你想對每個元素執行一個動作,使用#each迭代可能是你最好的選擇。 –

+0

感謝chron的評論 – glarkou

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

這將PARAMS轉換領域的整數,將驗證您的域PARAMS,如果你希望他們如果不是這種情況integers.An參數錯誤會提高。(前http://example.com/?fields=1,2,test