2011-07-08 9 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

いいえ、エラーは発生しません。デリミタがない文字列を分割すると、要素が1つの配列だけが返されます。要素ごとにアクションを実行する場合は、#eachを使用して反復処理を行うのがおそらく最善の策です。 –

+0

ありがとうございました – 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を変換し、あなたは彼らがそうではない場合は、エラーが発生しますintegers.An引数になりたい場合は、あなたのフィールドのparamsを検証します。(例: 。http://example.com/?fields=1,2,test

関連する問題