gpt4 book ai didi

ruby-on-rails - Searchkick如何显示存储桶键的联接表值

转载 作者:行者123 更新时间:2023-12-03 01:29:26 25 4
gpt4 key购买 nike

我有一个名为projects的表,其中有一堆字段。我加入了project_status表以获取状态信息。在输出不同的存储桶键时,我正在显示proj_status_id的值(1、2、3等)。我想要做的是显示联接表中的statusdescr字段,而不是数字proj_status_id

关于如何做的任何想法?这是我的项目 Controller 的索引方法:

    args = {}
args[:projtype] = params[:projtype] if params[:projtype].present?
args[:proj_status_id] = params[:proj_status_id] if params[:proj_status_id].present?
args[:created_at] = params[:created_at] if params[:created_at].present?
@projects = Project.joins(:proj_status).order("created_at DESC").search "*", where: args, aggs: {projtype: {}, proj_status_id: {}, created_at: {}}

这是我显示存储桶信息的地方:
    <% @projects.aggs["proj_status_id"]["buckets"].each do |bucket| %>

<span class="text-body d-flex justify-content-between align-items-center py-2 px-4">
<% if params[:proj_status_id] == bucket["key"].to_s %>
<div> <strong><%= link_to bucket["key"], request.params.merge(proj_status_id: bucket["key"]) %></strong> (<%= bucket["doc_count"]%>)</div>
<% else %>
<div><%= link_to bucket["key"], request.params.merge(proj_status_id: bucket["key"]) %> (<%= bucket["doc_count"]%>)</div>
<% end %>
</span>

<% end %>

任何想法或建议,表示赞赏。

最佳答案

您还需要索引project_status。将以下代码添加到您的项目模型中:

def search_data
attributes.merge(
project_status_statusdescr: self.project_status.try(:statusdescr)
)
end

添加以上代码后,不要忘记重新索引。

关于ruby-on-rails - Searchkick如何显示存储桶键的联接表值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56783365/

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