2017-11-15 7 views
0

私はスコープを作成し、それを配列型に向けました。スコープが配列型の場合、urlのパラメータを正しく書き込む方法は?

has_scope: by_industry,: type =>: array 

そして、私はこの範囲を有効にしたいと思います。

私は、このようなURLにパラメータを渡すことを試みた:

http://localhost:3000/v1/find_friends?by_industry=[1,2] 

は動作しません。

スコープが配列型の場合、urlのパラメータを正しく書き込むにはどうすればよいですか?クエリによって配列を渡す

+0

「http:// localhost:3000/v1/find_friends?by_industry [] = 1&by_industry [] = 2」 – guitarman

+0

うん。できます。しかし、なぜ私たちはそれのようなものを渡すことができないのですか?by_industry = [1,2,3]? –

+1

これは、GETメソッドのパラメータの仕組みです。 'by_industry = 1,2'のようなパラメータを渡したい場合は、' '1,2" '文字列を解析し、自分で配列に変換する必要があります。 – nattfodd

答えて

1

がキー+ブラケット構文を使用するパラメータ:

?foo[]=1&foo[]=2 

それはklunkyとその醜いだが、そのウェブの初期の時代から行われてこの古いCGIの規約がどのように使われるかのthatsラックによって。主な利点はfoo=[1,2]です。これは言語に依存せず、文字列を解釈することなくparamsを解析することができます(これはセキュリティの危険です)。

+0

これは、リクエスト本体の配列パラメータがフォームデータエンコーディングでどのように行われるかにもマッチします。 paramを手動で解析することはできますが、ただ時間を無駄にするだけです。 – max

関連する問題