如何通过Rails中的两级关联来定义模型?

时间:2016-01-11 06:02:28

标签: ruby-on-rails activerecord

我有模型UserTaggingTag

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})}

但如何做更多关卡?

1 个答案:

答案 0 :(得分:0)

试试这个

class User < ActiveRecord::Base

   scope :by_tag_name, ->(tag_name) { joins(tagging: :tag).where("tags.name=?", tag_id, tag_name)

end