在招聘申请中,我有一个模型'工作'
管理员可以创建新的工作。
作为工作描述的一部分,它将有大约4-5个要点总结它。
它还将具有作业中的所有角色及其描述。
这些仅用于显示目的,而不是用于过滤等。
这是我遇到的问题,您如何让用户创建这些项目符号列表和角色?
我可以在像
这样的rails中创建数据bullet_list_1:string
bullet_list_2:string
role_1_title:string
role_1_dsc:string
etc...
然而,如果我这样做,那么在特定的工作上可能会有更多的要点,而在其他工作上则更少的要点。
你会如何处理这种情况?
我在想一个has_many关系可能会这样做,但如果有一个更好的解决方案,那就完全可以了!
答案 0 :(得分:1)
我根据您的问题得出的功能结论:
技术候选人:
ActiveRecord关系(has_many)
这会被过滤掉。没有办法应用它,因为字段不确定。
Markdown文本解析
这将满足基本需求。您还可以显示每个字段的创建表单,并在保存时将它们组合为标记。但是,对于编辑,编辑原始markdown更容易,而不是将其转换回形式,如创建。此外,当您想要自定义视图输出时,例如显示其中的一部分,它的灵活性会降低。
文档数据库,如MongoDB
这将是一个完美的契合。所有项目符号和其他信息都可以保存在键/值对中。
文档上的ActiveRecord替代
如果您使用的是PostgreSQL,则可以考虑hstore
(对于一个级别的键/值)或json
(对于嵌套的级别键/值)数据字段。如果不是PostgreSQL,您可以使用文本字段并将其序列化为Hash或JSON,但性能较低。
结论:
如果“Job”模型是核心业务,我会考虑MongoDB。如果有任何其他限制,我会考虑PostgreSQL hstore或JSON,最后是序列化的文本字段。