0

我会尽量简短,但需要一些细节。我正在尝试对自定义项目管理系统的重写(在 Rails 中)进行原型设计。主要目的是帮助在阿拉巴马州搬迁或扩张的公司招聘、筛选和雇用他们的员工。当前系统运行在大多数人从未听说过的 4D 和 Active4D 上。可怕的数据库,但不错的桌面客户端/服务器系统。

对于那些可能没有听说过的人,他们在阿拉巴马州制造梅赛德斯、本田和现代,这些公司的大多数员工都是通过该机构使用该系统雇用的。除了大人物之外,还有许多其他公司使用这个经济发展机构来选择他们的劳动力。该过程主要是一个以雇用x数量员工为目标的项目。候选人是从州公民中招募的。候选人经历了一个有许多阶段或阶段的选择过程——主要是申请、面试、评估、培训和雇用。每个项目都是不同的,并且可能有一些自定义阶段。每个阶段可能有许多以某种方式评分的评估(在线申请、面试成绩单等)。完成每个阶段的评估后,候选人进入下一阶段,

虽然当前的数据库结构还可以,但我们已尝试进行一些改进。下面的模型和关系是当前原型的片段,从上到下从 Citizen 到 Project。添加了一些直通关系只是为了更好地了解数据库结构。我忘了指出每个项目可能有不同的程序,这些程序通常是基于工作的。还有许多其他模型可以帮助这个管理过程(安排活动、管理讲师等),这些没有被描述。

class Citizen < ActiveRecord::Base
  has_one :user, :as => :loginable
  has_many :candidates
  has_many :educations
  has_many :work_histories
  has_many :skills
end
class Candidate < ActiveRecord::Base
  belongs_to :program
  belongs_to :citizen
  has_many :progressions
end
class Progression < ActiveRecord::Base
  belongs_to :candidate
  belongs_to :stage
  has_many :scores
  has_one :citizen, :through => :candidate
end
class Stage < ActiveRecord::Base
  belongs_to :program
  has_many :assessors, :dependent => :destroy
  has_many :progressions, :dependent => :destroy
  has_many :candidates, :through => :progressions
  has_many :citizens, :through => :candidates
  has_many :educations, :through => :citizens
end
class Program < ActiveRecord::Base
  belongs_to :project
  has_many :stages, :order => "sequence", :dependent => :destroy
  has_many :candidates, :dependent => :destroy
end

有一个问题来了!阶段模型是系统的关键部分,因为它是选择候选人进入下一阶段的地方。由于当前的系统是在上线之前设计的,因此教育、技能、工作经历等半静态信息没有得到很好的定义,并作为评估添加到在线应用程序中 - 这导致了静态信息的重复(公民申请多个项目,并且必须重复作为其个人资料一部分的信息)。原型仍然希望评估其中的一些信息(您是否有高中文凭或 GED?)以及自定义程序特定评估(您有多少年的焊接经验?)。

我们认为我们可以编写一个过滤器搜索来筛选静态信息并将其与自定义评估分数相结合 - 说起来容易做起来。每个项目可能都在寻找不同的教育和技能要求。这几乎就像我需要为每个项目/程序自定义范围。我刚开始研究 Ransack 和 Squeel 之类的东西,它们可能会有所帮助,但是否使用相同的过滤器取决于筛查人员 - 始终如一。

在过滤器方法之前,我想向我编写的评估引擎添加一个功能,以某种方式查询静态信息,基本上是一个问题和答案并对其进行评分。问题是您将如何处理一个过滤器,该过滤器将寻找具有特定教育成就、在不同技能方面具有特定经验水平、在其当前进度中具有特定状态等的公民,然后针对不同的计划对其进行定制?

当然,我不是在寻找具体的答案,而是在寻找方法。

4

1 回答 1

0

很抱歉这篇文章很长,但有时你必须先写出你想要弄清楚的东西,然后才能弄清楚!

我的解决方案最终回到了我的通用评估引擎并编写了一种方法,可以对教育和其他与公民模型相关的事物进行评分。引擎通常对问题/答案表单的响应进行评分。我只需要创建一个分数对象。然后分数是选择过滤器的一部分。

我仍然想扩展过滤器功能,并且从 Ransack wiki 上的帖子中,它看起来像是创建了一个搜索对象(json?),可以捕获并可能隐藏在与项目相关的某个地方。

再次,我为长篇大论道歉。

于 2012-12-09T17:23:00.267 回答