gpt4 book ai didi

mysql - rails 4 : ActiveRecord or MySQL query where no related models have attribute

转载 作者:太空宇宙 更新时间:2023-11-03 12:10:14 25 4
gpt4 key购买 nike

这次遇到困难。我有一个 Job 模型和一个 JobStatus 模型。一项工作有很多状态,每个状态都有不同的名称(在本例中为 slug)。我需要一个“事件”方法,我可以调用它来查找所有相关状态都没有“掉线”的工作。

class Job < ActiveRecord::Base
belongs_to :agent

has_many :statuses, :class_name => "JobStatus"

validates :agent_id,
:pickup_lat,
:pickup_lng,
:dropoff_lat,
:dropoff_lng,
:description,
presence: true

class << self

def by_agent agent_id
where(agent_id: agent_id)
end

def active
#
# this should select all items where no related job status
# has the slug 'dropped-off'
#
end

end

end

工作状态:

class JobStatus < ActiveRecord::Base
belongs_to :job

validates :job_id,
:slug,
presence: true
end

到目前为止我得到的最接近的是:

def active
joins(:statuses).where.not('job_statuses.slug = ?', 'dropped-off')
end

但它仍在选择具有下车状态的工作,因为之前的状态不是“下车”。如果我知道原始 sql,我可能可以将它用于 activerecord 语言,但我不能完全理解它。

也没有与使用 activerecord 结合,如果解决方案是原始 SQL 也很好。

最佳答案

Job.where.not(id: JobStatus.where(slug: 'dropped-off').select(:job_id))

将为您生成一个嵌套子查询。

关于mysql - rails 4 : ActiveRecord or MySQL query where no related models have attribute,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24655310/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com