【问题标题】:How to query a list of objects from a Rails API?如何从 Rails API 查询对象列表?
【发布时间】:2021-03-12 14:59:43
【问题描述】:

我正在尝试从 Rails API 查询对象列表。也就是说,假设我想从某个模型中获取 id 为 247 的实例。

到目前为止,我最接近的猜测是将逗号分隔的ids 字符串传递给常规的resource/:id 路由,然后我拆分参数,从中构建一个数组并将其传递给where 调用。

它有效 - 但是,我觉得这不是一种干净的方式来完成我的目标。

所以我问你是否有 Rails 方式来处理这个问题。

网址应该是什么样子?如何从控制器中读取传递的值?

【问题讨论】:

  • 这是您控制的 API 吗?如果您想将数组参数传递给 Rack 应用程序(如 Rails),您可以将它们作为?foo[]=1&foo[]=2&foo[]=3 传递。这会给你{ foo: [1,2,3] }。不过,在 show 方法中处理这个是不对的。这应该在 index 方法中完成,因为您使用过滤器显示多条记录。

标签: ruby-on-rails api http


【解决方案1】:

我认为它应该是接受ids参数的索引路径上的过滤器。

所以 URL 应该是这样的

/resource?ids[]=2&ids[]=4&ids[]=7

你可以找到这些资源

def index
  if params[:ids].blank?
    @resources = Resource.all
  else
    @resources = Resource.find(params[:ids])
  end
end

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-08
    • 1970-01-01
    • 1970-01-01
    • 2013-01-14
    相关资源
    最近更新 更多