Как можно исключить некоторые элементы из этой области:
scope :within_category, ->(category) { joins(:category).where(:categories => { :id => category }) }
как это:
scope :within_category, ->(category, item_type) { joins(:category).where(:categories => { :id => category }, :id NOT IN item_type.id) }