gpt4 book ai didi

ruby-on-rails - 如何在 Rails 中查询带参数和不带参数的记录?

转载 作者:太空宇宙 更新时间:2023-11-03 17:43:51 24 4
gpt4 key购买 nike

我有模型 Places 并且在 Controller 中有索引方法。我需要通过请求获取所有位置

/places

并通过查询请求过滤地点

/places?tlat=xxxx&tlong=xxxx&blat=xxxxx&blong=xxxx

获取此记录的最佳方式是什么?我应该检查每个参数是否存在,还是有 Rails 方式?

@places = if params[tlat]&&params[blat]....
Places.all.where("lat > ? AND long > ? AND lat < ? AND long < ?", tlat, tlong, blat, blong)
else
Places.all

最佳答案

如果你想根据参数设置 WHERE 子句,你可以使用 Ursus 的代码,这很好。

但是,如果仅当存在一组参数时才需要应用这些 WHERE 子句,则可以使用以下内容:

@places = Place.all
if params[:blat].present? && params[:tlat].present?
@places = @places.where(blat: params[:blat], tlat: params[:tlat])
end
# etc.

您可以使用数组的数组来配对关联的参数,有点像 Ursus 所做的。

关于ruby-on-rails - 如何在 Rails 中查询带参数和不带参数的记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45438314/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com