gpt4 book ai didi

mysql - Rails where 查询 has_and_belongs_to_many

转载 作者:行者123 更新时间:2023-11-29 13:46:03 26 4
gpt4 key购买 nike

我有研讨会表和类别表。

车间模型:

  has_many :workshop_categories, dependent: :destroy
has_many :categories, through: :workshop_categories

类别模型:

  has_many :workshop_categories, dependent: :destroy
has_many :workshops, through: :workshop_categories

我有一个 WorkshopCategory 模型:

class WorkshopCategory < ActiveRecord::Base
belongs_to :workshop
belongs_to :category
end

我想根据类别查询事件(事件是一个范围)的研讨会。在车间模型中试过这个:

  def self.browse(params)  
workshops = Workshop.active.order( "created_at DESC" )
workshops = workshops.joins(:categories).where(:categories => { :id => params[:category]}) if params[:category].present?
workshops
end

但是我得到这个错误:

ActiveRecord::StatementInvalid (PG::AmbiguousColumn: ERROR:  column reference "id" is ambiguous

这个查询的正确方法是什么?我在 Internet 上可以找到的所有内容都已过时。

最佳答案

这个问题是因为类别和研讨会都有一个列id

你需要做类似的事情:

workshops.joins(:categories).where('category.id = ?', ...)

请注意它现在如何指定您指的是哪个 id

关于mysql - Rails where 查询 has_and_belongs_to_many,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48348772/

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