0
に私は、Ajax PATCH
呼び出しによって配列("[1,3,44,2,0]"
)を送信しています、そして、それはとして到着:チェック汚染チェックするには変換のparams配列(文字列)は、実際の整数配列
Parameters: {"ids"=>"[1,3,44,2,0]"}
、私が使用しています次の行 - 文字列の開始と終了に対してで試合アンカーと、少なくとも1つの数字があることを確認する、または数字をコンマで区切り、その:
raise "unexpected ids #{params[:ids]}" unless params[:ids].match(/\A\[(\d+,)*\d+\]\z/)
をそして実際の整数を作るために私は以下のアプローチを使用しています(整数に各文字列要素を変換し、コンマで分割、ブラケットを取り除く):
irb> "[1,3,44,2,0]"[1...-1].split(',').map {|e| e.to_i}
=> [1, 3, 44, 2, 0]
これを行うのより良い(単純、安価、速い)方法はありますか?
ありがとうございました!私の悪い!私はAjax呼び出しをチェックしましたが、配列を整数配列として渡したいのですが、実際にはJSON.stringifyを呼び出していました。私はそれを完全に忘れていました。私はそれを推薦する人物を読むので、私はそれをしました。それは悪い勧告だったのですか?整数の配列を渡すだけで何も問題はありませんか? – user664833
何も間違っています;) – Ursus