如何在 Rails 中的数组字段上创建 Ransack 搜索?

How to create a Ransack search on an array field in Rails?

提问人:Rahul kumar 提问时间:4/28/2023 最后编辑:engineersmnkyRahul kumar 更新时间:4/28/2023 访问量:44

问:

我有一个带有 schedule_interview_date 字段的 developers 表,这是一个日期数组。我想在此字段上创建一个 Ransack 搜索,以获取 schedule_interview_date数组的最后一个位置值。

schedule_interview_date数据包含在数组中,如下所示:-

[[1980 年 1 月 21 日星期一 00:00:00.000000000 IST +05:30,1980 年 2 月 2 日星期六 04:03:00.0000000000 IST +05:30]]

这是我的控制器方法:

def index
    session[:current_page] ="all_request"
    pagination_per_page_value
    @q = ClientRequest.with_resource_info_and_developer.page(params[:page]).per(@per_page).ransack(params[:q])
    if(params[:q] && @filter_per_page_value = params[:q][:per_page_eq]) != nil
      @per_page = @filter_per_page_value
      @q = ClientRequest.with_resource_info_and_developer.page(params[:page]).per(@per_page).ransack(params[:q]) 
    end
    kanban_view_details
  end

这是我的 ClientRequest 模型:

class ClientRequest < ApplicationRecord
  has_many :developers, through: :resource_infos
end

下面是我在查看文件中的 Ransack 搜索字段

  <div>
        <div class="row">
          <div class="col">
            <label>Interview Date</label>
            <div class="d-flex">
              <%= f.date_field :developers_schedule_interview_date_gteq, class:"fa fa-calendar form-control", id: "fromdate-form" %>
              <%= image_tag("datepickerArrow.svg", alt: "image is not loaded", class:"date-img") %>
              <%= f.date_field :developers_schedule_interview_date_lteq, class:"fa fa-calendar form-control", id: "todate-form" %>
            </div>
          </div>
        </div>
      </div>

当我尝试搜索此字段时,出现以下错误:

enter image description here

阵列 Ruby-on-Rails Ruby Ransack

评论

0赞 max 4/28/2023
我真的建议你设置一个单独的表和一个关联,而不是使用数组列,这是一个反模式,这将使查询成为一种痛苦的后端。tapoueh.org/blog/2018/03/database-modelization-anti-patterns/......

答: 暂无答案