gpt4 book ai didi

ruby-on-rails - Ruby on Rails ActiveRecord 如何让 where 子句始终评估为真

转载 作者:数据小太阳 更新时间:2023-10-29 07:59:24 25 4
gpt4 key购买 nike

我正在制作一个简单的资源应用程序。该应用程序具有三个主要类别(类(class)、年份、资源类型)的过滤器,这些过滤器可能存在也可能不存在。这些过滤器通过 URL 中的参数传递。我将这些参数存储在名为类(class)、年份、资源类型的 3 个数组中。但是有时数组可能是空的。当我尝试使用空数组运行搜索时(例如,可能 resourceType 为空,因此我想要特定年份的特定资源,但它可以是任何类型),它返回一个空集。有没有办法在此功能中使用通配符?如果没有,有人可以提出合适的解决方案吗?

这是我要运行的函数。

     @resources= Resource.where(class_name: courses, 
year: years,
resource_type: resourceTypes)
.paginate(page: params[:page], per_page: 10)
.order(:cached_votes_total => :desc)

最佳答案

你总是可以这样做:

@resources = Resource.all
@resources = @resources.where(class_name: courses) if courses.any?
@resources = @resources.where(resource_type: resourceTypes) if resourceTypes.any?
@resources = @resources.where(year: years) if years.any?
@resources = @resources.paginate(page: params[:page], per_page: 10).order(:cached_votes_total => :desc)

关于ruby-on-rails - Ruby on Rails ActiveRecord 如何让 where 子句始终评估为真,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30228603/

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