Searchkick 如何显示桶键的连接 table 值
Searchkick how to display a joined table value for bucket key
我有一个名为 projects
的 table,它有很多字段。我加入了 project_status
table 以获取状态信息。在输出不同的桶键时,我正在显示 proj_status_id
的值(1、2、3 等)我想做的是显示加入的 [=26] 中的 statusdescr
字段=] 而不是数字 proj_status_id
。
关于如何做到这一点有什么想法吗?这是我的项目控制器的索引方法:
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
添加以上代码后,别忘了重新索引。
我有一个名为 projects
的 table,它有很多字段。我加入了 project_status
table 以获取状态信息。在输出不同的桶键时,我正在显示 proj_status_id
的值(1、2、3 等)我想做的是显示加入的 [=26] 中的 statusdescr
字段=] 而不是数字 proj_status_id
。
关于如何做到这一点有什么想法吗?这是我的项目控制器的索引方法:
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
添加以上代码后,别忘了重新索引。