【问题标题】:How to scope model through two level association in Rails?如何通过 Rails 中的两级关联来确定模型范围?
【发布时间】:2016-01-11 20:52:39
【问题描述】:

我有模型UserTaggingTag

用户.rb

has_one :tagging    

标记.rb

belongs_to :user
belongs_to :tag

标签.rb

has_many :taggings

我想根据标签的名称来确定用户的范围。怎么做?

目前,我知道如何在一级关联下做范围,例如:

scope :with_tag_id, -> (tag_id) {joins(:tagging).where(taggings: {tag_id: tag_id})}

但是怎么做更多的关卡呢?

【问题讨论】:

    标签: ruby-on-rails activerecord


    【解决方案1】:

    试试这个

    class User < ActiveRecord::Base
    
       scope :by_tag_name, ->(tag_name) { joins(tagging: :tag).where("tags.name=?", tag_id, tag_name)
    
    end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-25
      • 1970-01-01
      • 1970-01-01
      • 2017-08-29
      • 1970-01-01
      相关资源
      最近更新 更多