Ruby on rails Rails ActiveRecord-如果记录位于其他表中,则排除结果
我正在尝试创建一个类似taskrabbit或upwork的网站,在这里,一个成员可以发布一个作业,一个工作人员可以提交一个作业投标。这是我最近发布的一个问题的后续。我正在使用搜索/作业显示功能,并希望返回仅包含满足以下条件的作业的结果集: 1) 作业开始日期在将来 2) 这个工人还没有投标 3) 客户尚未接受其他员工的出价 4) 工人具备工作所需的适当技能 由于@jvillian,前2个要求通过作业模型中的一个类完成,但当我尝试了几个变体以排除在中标表中有作业条目的记录时(要求3-表示客户已接受投标,不再接受任何投标)或者当员工不具备“员工技能表”中“工作技能表”中列出的所有技能时(要求4-意味着他们不具备工作所需的所有技能) 如何修改Job类中的搜索条件以满足要求3和4 模型如下:Ruby on rails Rails ActiveRecord-如果记录位于其他表中,则排除结果,ruby-on-rails,ruby,activerecord,Ruby On Rails,Ruby,Activerecord,我正在尝试创建一个类似taskrabbit或upwork的网站,在这里,一个成员可以发布一个作业,一个工作人员可以提交一个作业投标。这是我最近发布的一个问题的后续。我正在使用搜索/作业显示功能,并希望返回仅包含满足以下条件的作业的结果集: 1) 作业开始日期在将来 2) 这个工人还没有投标 3) 客户尚未接受其他员工的出价 4) 工人具备工作所需的适当技能 由于@jvillian,前2个要求通过作业模型中的一个类完成,但当我尝试了几个变体以排除在中标表中有作业条目的记录时(要求3-表示客户已接受
class Worker < ApplicationRecord
has_many :bids
has_many :winning_bids
has_many :abilities, through: :job_options
end
class Skill < ApplicationRecord
has_many :job_skills
has_many :jobs, through: :job_skills
has_many :worker_skills
has_many :skills, through: :worker_skills
end
class WorkerSkill < ApplicationRecord
belongs_to :worker
belongs_to :skill
end
class Job < ApplicationRecord
has_many :bids
has_many :skills
has_many :job_skills
has_many :skills, through: :job_skills
def self.available_for_bid(worker)
where.not(id: worker.job_ids).where('start_date > ?', Date.today)
end
end
class JobSkill < ApplicationRecord
belongs_to :job
belongs_to :skill
end
class Bid < ApplicationRecord
belongs_to :job
belongs_to :worker
end
class WinningBid < ApplicationRecord
belongs_to :job
belongs_to :worker
end
class Worker?',date.today)
结束
结束
职业技能类<应用记录
属于:工作
属于:技能
结束
类别投标<申请记录
属于:工作
属于:工人
结束
类WinningBid<应用程序记录
属于:工作
属于:工人
结束
@jvillian您之前帮了我很大忙的一个问题的后续问题,您是否可以在这里为我指出正确的方向?您真的需要一个单独的表来赢得出价?它与正常的投标模式有什么实质性的不同?我只想在作业模型中添加一个关联,该关联属于:winning\u bid,class\u name:'bid'
哪个数据库?我想您需要使用ActiveRecord::Merge来实现这一点。是Google上的首批结果之一,但基本上AR::Merge允许您根据相关表的条件查询表。然后你从4回来3,4。你会玩一个游戏“为我自己编码并拿走我的钱”吗?如果您的所有代码都是stackoverflow的产物,您自己做了什么?