Ruby on Rails API コントローラーでクエリ パラメーターの値の配列を受信できるようにするにはどうすればよいですか?
概要
API エンドポイントを Express サービスから Ruby on Rails サービスに移行しています。 Express では、同じクエリ パラメーターに複数の値が指定されている場合 (例: http://localhost:3002/api/resource?include=foo&include=bar)、Express はそれらを配列として扱います。前のエンドポイントへのクエリ パラメーターは { include: [‘foo’, ‘bar’] } になります。
Ruby on Rails で確認されているデフォルトの動作は、複数のクエリ パラメータが同じキーで使用されている場合、前のクエリ パラメータをオーバーライドすることです。たとえば、前のエンドポイントのクエリ パラメータは { include: ‘bar’ } として変換されます。以前の値をオーバーライドするのではなく、値の配列を許可するようにこの動作を変更することは可能ですか?
これは既存の API エンドポイントであるため、この問題を解決するために URL を変更することはできません。 http://localhost:3002/api/resource?include[]=foo&include[]=bar が機能することはわかっていますが、これは API に対する重大な変更になります。
解決策
CGI::parse request.query_string