【发布时间】:2018-06-24 17:24:23
【问题描述】:
是否有否定作用域结果的方法? 我有 3 个模型,由 has_many 关联:通过关联
用户.rb
class User < ActiveRecord::Base
has_many :user_training_maps
has_many :trainings, through: :user_training_maps
end
培训.rb
class Training < ActiveRecord::Base
has_many :user_training_maps
has_many :users, through: :user_training_maps
end
user_training_map.rb
class UserTrainingMap < ActiveRecord::Base
belongs_to :user
belongs_to :training
end
之前,我想查找所有属于(注册)培训的用户。在 user.rb 中,这是有效的:
scope :all_enrolled, -> { joins(:trainings) }
现在,我需要帮助找到所有不属于(未注册)培训的用户。我不能让它工作:
scope :all_unenrolled, -> { !joins(:trainings) }
相反,它只是返回所有用户。类似unenrolled users = (all users) - (enrolled users)
【问题讨论】:
标签: ruby-on-rails ruby activerecord scope