が表示されます。私は「filled_only」を使用することができ、このようなコードで参加テーブルやマップ、私はインデックスメソッド持って
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
をし、予想通り、それは結果を生成する - 私のすべてのプランを持っている唯一のラボを与える0以上を数えます;これを引き起こしている可能性があります
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
前joins, group, having
にコードを配置し、true
にfilled_only
を設定している場合
は、しかし、私は言って、私のデータベースからのエラーを取得しますか? Marker setup
のコードは、私の@places
変数の中の何かを変更しますか?
'lab_instance.class.table_name'からtable_nameを取得し、' sort_column'というメソッドに追加しました。 'Lab.column_names.include?(params [:sort])? params [:sort]: "labs.id" 'と私が得るのは' TypeError(暗黙的にFixnumをHashに変換しない) ' – Ancinek
です。 '@ labs.count'を呼び出すときにすべての結合などのメソッドを実行した後、数値のハッシュ値を返します – Ancinek