ruby-on-rails - 关于 has_many 关联的 Searchkick 查询
问题描述
我有一个 Organizer 模型,它有has_many :events
. 该模型如下所示:
class Organiser < ApplicationRecord
has_many :events, dependent: :delete_all
scope :search_import, -> { includes(:events) }
searchkick searchable: [:name]
def search_data
{
name: name,
category: category
}
end
end
事件模型有一个starts_on:datetime
列,如果它在某个日期期间有事件,我想过滤组织者。我将如何实现这一目标?
编辑
我通过在search_data
方法中添加以下内容来完成这项工作:
events: events.map{|event| {starts_on: event.starts_on} }
然后在search
方法中您可以执行以下操作:
where: {"events.starts_on" => {gt: Time.now}}
似乎运作良好。如果有更好的方法可以做到这一点,请提及。
解决方案
我通过将以下内容添加到 search_data 方法来完成这项工作:
events: events.map{|event| {starts_on: event.starts_on} }
然后在搜索方法中您可以执行以下操作:
where: {"events.starts_on" => {gt: Time.now}}
推荐阅读
- javascript - React - 从 API 调用创建对象并存储在一个大对象中
- apache - 使用 mod_authnz_ldap 公开组信息
- html - Angular Material Table - 将动态背景颜色应用于一行(Angular 2+)
- join - 如何使用实体框架结合嵌套交叉连接和左连接
- java - dropzone.js - 将目录和文件上传到 Spring MVC
- c++ - 使用带有 boost-parameter 的初始化列表
- python - 如何为每个拆分执行命令?
- pandas - 为什么我得到一个 SettingWithCopyWarning 一个值正试图在一个切片的副本上设置?
- excel - 在 MS Excel 工作表中并排分离两个表格
- vue.js - 在vue js md-table中隐藏列标题