Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/54.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails ActiveRecord-如果记录位于其他表中,则排除结果_Ruby On Rails_Ruby_Activerecord - Fatal编程技术网

Ruby on rails Rails ActiveRecord-如果记录位于其他表中,则排除结果

Ruby on rails Rails ActiveRecord-如果记录位于其他表中,则排除结果,ruby-on-rails,ruby,activerecord,Ruby On Rails,Ruby,Activerecord,我正在尝试创建一个类似taskrabbit或upwork的网站,在这里,一个成员可以发布一个作业,一个工作人员可以提交一个作业投标。这是我最近发布的一个问题的后续。我正在使用搜索/作业显示功能,并希望返回仅包含满足以下条件的作业的结果集: 1) 作业开始日期在将来 2) 这个工人还没有投标 3) 客户尚未接受其他员工的出价 4) 工人具备工作所需的适当技能 由于@jvillian,前2个要求通过作业模型中的一个类完成,但当我尝试了几个变体以排除在中标表中有作业条目的记录时(要求3-表示客户已接受

我正在尝试创建一个类似taskrabbit或upwork的网站,在这里,一个成员可以发布一个作业,一个工作人员可以提交一个作业投标。这是我最近发布的一个问题的后续。我正在使用搜索/作业显示功能,并希望返回仅包含满足以下条件的作业的结果集:

1) 作业开始日期在将来 2) 这个工人还没有投标 3) 客户尚未接受其他员工的出价 4) 工人具备工作所需的适当技能

由于@jvillian,前2个要求通过作业模型中的一个类完成,但当我尝试了几个变体以排除在中标表中有作业条目的记录时(要求3-表示客户已接受投标,不再接受任何投标)或者当员工不具备“员工技能表”中“工作技能表”中列出的所有技能时(要求4-意味着他们不具备工作所需的所有技能)

如何修改Job类中的搜索条件以满足要求3和4

模型如下:

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的产物,您自己做了什么?