ruby-on-rails - Rails API 子集响应
问题描述
我有一个控制器,旨在执行简单的 CRUD 操作。我的数据模型有一个名为start_date
. 我应该怎么做才能使我的 API 返回一个 JSON 响应,其中仅包含start_date
我可以在请求正文中指定的两个日期之间的值的条目?
解决方案
这更像是一个关于过滤的通用问题,可以应用于任何 API 请求。
如果您GET
向端点发出请求,example.com/model
则必须传递一些参数,在这种情况下,URL 中有 2 个日期。所以它会是这样的:
example.com/model?start_date=12.12.2017&end_date=15.12.2017
这个例子当然超级简单。您可以通过时间戳或 ISO 格式等不同方式传递这些日期。那取决于你。
在后端,您必须从请求中获取这些参数并对模型执行查询。像这样的东西:
def index
start_date = params[:start_date]
end_date = params[:end_date]
# Make sure to parse the params and transform in a date object
result = Model.where('start_date < ? AND start_date > ?', end_date, start_date)
respond_to do |format|
format.json { render json: result }
end
end
推荐阅读
- html - 切换按钮边框空间
- hashicorp-vault - 如何修复保险库错误:无法读取请求计数器:无效字符“\x00”正在寻找值的开头?
- javascript - 使用文本框、下拉列表和复制特定列创建动态表
- javascript - 从浏览器/Javascript 调用本地 PowerShell 脚本
- c# - 窗口焦点错误
- bash - 如何将反斜杠与shell变量连接起来
- python - 使用 Flask Rest API 从 JSON 向 MySQL 插入数据时出错
- python - 如何从网格布局中删除特定行?从弹出窗口添加行
- php - 使用数组中的条件在循环内创建数组
- php - 如何使用 PHP SDK 从 Google Tag Manager API 获取所有触发器?