我对在招聘应用中实现以下功能的最佳方式有点困惑:
所有用户必须填写1“common_application_form”。
在通用申请表中,将有毕业年份,首选行业的多选择选项列表,简历附件等选项。
所有用户都可以通过他们对问题的回答进行过滤。即任何2005年毕业并且更喜欢从事销售工作的人。
我想有两种方法可以做到这一点 -
选项1:用户has_one common_app
在常用应用中,创建grad_year:integer,pref_industries:string等。
然后通过类似的方式过滤 - >
User.includes(:common_app).where('common_app.grad_year = 2005')
这样做的缺点是我不确定如何为行业提供多选择选项列表。数据类型是字符串吗?过滤如何工作?
选项2 has_many通过common_app
选项2可以通过common_app模型通过关联进行某种has_many。我认为这可能是最好的方法,但我对has_many关联有点困惑,并且在构建数据库时遇到了麻烦。
在您看来,您是否会选择选项1,如果是,您将如何处理多选择选项列表?
如果选项2,你会做什么?
当然,也许我完全走错了路,在这种情况下让我知道:P
答案 0 :(得分:1)
大卫的回答是正确的,你可以看看这个截屏视频:http://railscasts.com/episodes/17-habtm-checkboxes-revised?view=asciicast
我做了几次这样的应用,但有很多多选和选择答案。我采用了name:string
group:integer
等方法制作一个名为选项的模型的方法......
在选项模型中我有:
def self.by_group(group_number)
where(:group => group_number)
end
我可以提取选项集合以在示例中使用options.by_group(1)
构建表单。
答案 1 :(得分:0)
选项1对我有意义。
关于首选行业,我将其视为用户与行业列表之间的联接 - UserIndustry模型。
如果您想对其应用属性(例如优先级或优先级),那么User和Industry都将拥有User_ndustry,它们属于两者,而Industry和User都通过UserIndustry相互拥有。