[英]Rails filtering with scopes not returning results from multiple paramters
我在 model 中定义了以下 scope:
scope :filter_by_language, -> (language) { where( languages: {language_name: language}) }
在 controller 中我使用
@things= @things.filter_by_language(params[:language]).includes(:language) if params[:language].present?
这适用于单个查询,如下所示:
http://127.0.0.1:3000/api/v1/things?language=French
但我的研究表明,我应该能够通过在 get 请求中使用 & 返回所有匹配结果来返回多种语言的结果,因此:
http://127.0.0.1:3000/api/v1/things?language=French&language=English
但我只有最后一个参数的结果,所以在这种情况下只有英文结果,而不是英文和法文。
谁能指出我出错的方向? 非常感谢!
您需要使用方括号发送那些非升级参数,例如:
?language[]=French&language[]=English
文档: https://guides.rubyonrails.org/action_controller_overview.html#hash-and-array-parameters
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.