Ruby on rails ActiveRecord作用域基于子作用域条件,是否包含具有该条件的子作用域?
如何编写作用域根据子对象的条件返回自身,并仅在该条件下包含这些子对象 例如,我如何编写一个范围来返回所有已发布作业的Ruby on rails ActiveRecord作用域基于子作用域条件,是否包含具有该条件的子作用域?,ruby-on-rails,activerecord,Ruby On Rails,Activerecord,如何编写作用域根据子对象的条件返回自身,并仅在该条件下包含这些子对象 例如,我如何编写一个范围来返回所有已发布作业的组织,并包括那些已发布的作业(而不包括未发布的作业) 这需要两个问题吗 # Organization.rb scope :with_published_jobs, lambda { joins(:jobs) .merge(Job.published) .includes(:jobs).where(published: true) # doesnt wor
组织
,并包括那些已发布的作业(而不包括未发布的作业)
这需要两个问题吗
# Organization.rb
scope :with_published_jobs, lambda {
joins(:jobs)
.merge(Job.published)
.includes(:jobs).where(published: true)
# doesnt work
}
组织模型
class Org < ApplicationRecord
has_and_belongs_to_many :jobs, autosave: true
...
类组织
工作模式
class Job < ApplicationRecord
has_and_belongs_to_many :orgs
类作业
这两个模型与联接表相关实现这一点的一种方法是在组织模型上创建不同的关联,并使用该关联而不是
作业
组织机构
是否有和属于许多:已发布的作业,->{where(published:true)},类名:'Job'
作用域:使用发布的作业,->{连接(:发布的作业)。包括(:发布的作业)}
您能添加模型和/或迁移以了解它们之间的关系吗?我已经更新了我的问题@SebastianPalma