繁体   English   中英

Rails 过滤范围不返回多个参数的结果

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM