【问题标题】:How to get specific data when pass multiple parameter at the end of url?在url末尾传递多个参数时如何获取特定数据?
【发布时间】:2015-06-04 19:00:10
【问题描述】:

我正在使用我的应用程序的 rails 4.2。

下面是我的描述控制器的索引操作。

def index
  @descriptions = Description.all
  if name = params[:name]
    description = @descriptions.where(name: name)
    render json: description
  end
end

当我在浏览器中输入http://localhost:3000/descriptions?name=LA 时。 我可以得到一个名称属性为 JSON 格式的“LA”的数据。 如下所示。

[{"id":140,"name":"LA","value":"Lakers","api_name_id":113,"created_at":"2015-06-04T17:11:18.649Z","updated_at":"2015-06-04T17:11:18.649Z"}]

但是,如果我在网址末尾传递两个参数,例如

http://localhost:3000/descriptions?name=LA&name=123

我只能获取名称属性为“123”的JSON格式的数据。

[{"id":143,"name":"123","value":"456","api_name_id":114,"created_at":"2015-06-04T17:20:18.703Z","updated_at":"2015-06-04T17:20:18.703Z"}]

有什么方法可以获得名称属性为“LA”和“123”的所有数据?如下所示

[{"id":143,"name":"123","value":"456","api_name_id":114,"created_at":"2015-06-04T17:20:18.703Z","updated_at":"2015-06-04T17:20:18.703Z"},{"id":140,"name":"LA","value":"Lakers","api_name_id":113,"created_at":"2015-06-04T17:11:18.649Z","updated_at":"2015-06-04T17:11:18.649Z"}]

【问题讨论】:

  • 如何以及可能?
  • 意思是name=LA或name=123的所有数据。 (this and is not &&) XD

标签: ruby-on-rails ruby json ruby-on-rails-4


【解决方案1】:

点击网址:

http://localhost:3000/descriptions?name[]=LA&name[]=123

剩下的就是你的代码是完美的。但请记住where 会做SQL IN 操作。查看answer 以了解如何使用 查询字符串 传递类似数组的元素。

【讨论】:

  • 如果我传递两个不同的属性怎么办?一个是“名称”,另一个是“价值”..like localhost:3000/descriptions?name=LA&value=456
  • @LateBloomer 这取决于您希望查询的方式... AND 或 OR?
  • if OR??如何实现?
  • @LateBloomer @descriptions.where("name = ? OR value = ?", params[:name], params[:value])
  • 我真的很感激。有什么方法可以传递两个相同的属性吗?比如 localhost:3000/descriptions?name=LA&name=NY&value=456&value=789
【解决方案2】:

也许你会想要

unless params.empty?
 description = {}
 params.each do |key, value|
  description.merge(@descriptions.where(name: value)) if key == name
 end
end

【讨论】:

    猜你喜欢
    • 2016-02-09
    • 2013-11-21
    • 2012-06-12
    • 2012-10-09
    • 2016-02-20
    • 1970-01-01
    • 1970-01-01
    • 2018-02-05
    • 2019-06-15
    相关资源
    最近更新 更多