繁体   English   中英

has_many通过,vs Emirates_to

[英]has_many through, vs belongs_to

我对在应聘应用中实现以下功能的最佳方法感到有些困惑:

所有用户必须填写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

大卫的答案是正确的,您可以看一下此截屏视频: http: //railscasts.com/episodes/17-habtm-checkboxes-revised?view= asciicast

我做了几次这样的应用程序,但是有很多选择和选择答案。 我采取的方法是使用name:string group:integer等创建一个称为option的模型。

在期权模型中,我有:

def self.by_group(group_number)
  where(:group => group_number)
end

在示例中,我可以提取选项集合以使用options.by_group(1)构建表单。

选项1对我来说很有意义。

关于首选行业,我将其视为用户和行业列表(UserIndustry模型)之间的结合。

如果要向其应用属性(例如优先级或优先级的强度),则User和Industry都将具有has_many UserIndustry,它们都属于它们,并且Industry和User都通过UserIndustry相互has_many。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM