我正在尝试修改 Sharetribe,这是一个用于在线社区的 Ruby on Rails 框架。有这种方法可以返回相关的搜索过滤器。
现在,如果它存在于任何一个类别中(由 标识),它会返回一个过滤器category_ids
。
当且仅当它存在于所有由category_ids
.
作为 Rails 和 ActiveRecord 的新手,我有点迷茫。这是返回相关过滤器的方法:
# Database select for "relevant" filters based on the `category_ids`
#
# If `category_ids` is present, returns only filter that belong to
# one of the given categories. Otherwise returns all filters.
#
def select_relevant_filters(category_ids)
relevant_filters =
if category_ids.present?
@current_community
.custom_fields
.joins(:category_custom_fields)
.where("category_custom_fields.category_id": category_ids, search_filter: true)
.distinct
else
@current_community
.custom_fields.where(search_filter: true)
end
relevant_filters.sort
end
有没有办法更改 SQL 请求,或者我应该像现在一样检索所有字段,然后删除我不感兴趣的字段?