【问题标题】:Filtering Active Resource Objects Using Where Clause使用 Where 子句过滤活动资源对象
【发布时间】:2019-11-29 11:51:38
【问题描述】:

我希望使用 Ruby on Rails 构建一个基本的 Shopify 应用。

我正在使用 Shopify_app gem 来促进我对 Shopify 的 API 调用。

例如

orders = ShopifyAPI::Order.find(:all, :params => {:limit => 3})

我真的很纠结如何过滤这些数据。

具体来说,我想在应用程序的前端包含一个日期选择器,它将根据 created_at 日期过滤订单。

但是,在查询活动资源时,我认为您不能使用“where”方法,并且“select”和“find”等其他方法不适合。

那么我的问题是这个。

有没有一种方法可以在不将数据实际加载到数据库中并使用 Active Record 方法进行查询的情况下查询和过滤数据?

我想过滤和提取数据,但不存储它,因为我不需要。

任何帮助或指点将不胜感激。

【问题讨论】:

  • 它会很慢,但你可以使用 vanilla ruby​​、hash 和/或数组方法

标签: ruby-on-rails activerecord shopify shopify-app activeresource


【解决方案1】:

如果您查看文档,您会发现端点通常带有有用的过滤器。因此,您从前端收集过滤器输入,并在 ActiveResource 查询或 GraphQL 查询中使用它们。因此,虽然您没有获得与您自己的数据库可能提供的相同级别的过滤,但您仍然可以进行过滤。正如您的问题已经指出的那样,您可能希望过滤日期,这是受支持的。

【讨论】:

  • 哇!刚刚对此进行了测试,只要使用的过滤器位于 API 文档中设置的过滤器列表中(如您所建议的),我就可以在 ActiveResource 上使用 where 子句。例如,orders.where("created_at_min" => '2019-12-30T13:55:21Z') 非常感谢您的回答,我一直在跌跌撞撞地试图弄清楚这个问题!
猜你喜欢
  • 2021-08-01
  • 2018-03-10
  • 1970-01-01
  • 1970-01-01
  • 2012-06-20
  • 1970-01-01
  • 2015-04-10
  • 2013-09-25
  • 1970-01-01
相关资源
最近更新 更多