我有研讨会表和类别表。
工作坊模型:
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
此查询的正确方法是什么?我在互联网上找到的一切都已经过时了。
答案 0 :(得分:0)
此问题是因为类别和研讨会都有一列workshops.joins(:categories).where('category.id = ?', ...)
您需要执行以下操作:
id
请注意它现在如何指定您引用的{{1}}。