gpt4 book ai didi

mysql - 连接表格和 map 显示

转载 作者:行者123 更新时间:2023-11-29 20:10:51 25 4
gpt4 key购买 nike

我有一个索引方法:

def index
if params[:city] || params[:lab_type]
@labs = Lab.in_city(params[:city]).with_type(params[:lab_type]).advanced_search(params[:search]).order(sort_column + " " + sort_direction)
else
@labs = Lab.advanced_search(params[:search]).order(sort_column + " " + sort_direction)
end
# Marker setup:
if @places.count > 1
@hash = Gmaps4rails.build_markers(@labs.select(:name, :latitude, :longitude)) do |lab, marker|
marker.lat lab.latitude
marker.lng lab.longitude
end
end
# Only labs with offer_items.count > 1 if filled_params
@labs = @labs.joins( :offer_items ).group( 'labs.id' ).having( 'count( lab_id ) > 1' ) if params[:filled_only]
end

使用这样的代码,我可以使用“filled_only”,它会按预期生成结果 - 只给我提供任何报价计数大于 0 的实验室;

但是,如果我将带有 joins, group,having 的代码放在 Marker setup 之前,并将 filled_only 设置为 true 我从数据库中收到一条错误消息:

ActiveRecord::StatementInvalid (PG::AmbiguousColumn: ERROR:  column reference "id" is ambiguous
LINE 1: ... BY labs.id HAVING (count( lab_id ) > 1) ORDER BY id asc

可能是什么原因造成的? Marker setup 中的代码是否会更改我的 @places 变量中的任何内容?

最佳答案

错误表明您至少选择了两列名称id

按 id asc 排序

看起来您有 order by 并且查询无法决定将使用哪个表列名称 id。

ORDER BY id asc 更改为 ORDER BY your_table_name.id asc,其中 your_table_name 是您想要的表 ID 的表名称排序。

似乎应该更改sort_column

关于mysql - 连接表格和 map 显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40139523/

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