我有模型User
,Tagging
,Tag
User.rb
has_one :tagging
Tagging.rb
belongs_to :user
belongs_to :tag
Tag.rb
has_many :taggings
我想根据标签的名称来确定用户的范围。怎么做?
目前,我知道如何在一个级别关联下执行范围,例如:
scope :with_tag_id, -> (tag_id) {joins(:tagging).where(taggings: {tag_id: tag_id})}
但如何做更多关卡?
答案 0 :(得分:0)
试试这个
class User < ActiveRecord::Base
scope :by_tag_name, ->(tag_name) { joins(tagging: :tag).where("tags.name=?", tag_id, tag_name)
end