我需要在 Rails 项目中添加以下功能:
当前功能:
一个ProjectUser hasMany Projects 一个Project hasMany Users。用户可以使用基本的电子邮件/密码组合注册项目。
所需功能:
ProjectUser可以将表单添加到项目中 然后 将表单呈现给用户作为注册的第二步。ProjectUser在添加表单时可以从预定义的表单项列表中进行选择。(例如 Age 字段、Company size 字段、Country 字段等)
宝石
我一直在看 Gems,但我发现的一切都是陈旧的(Pre-rails 3)。所以我的问题有两个。任何人都可以推荐一个可以提供此功能的稳定且最新的 Gem,如果没有,我应该如何解决这个问题?
没有宝石
我目前的想法是,我创建了一个包含许多FormItems的Form模型,ProjectUser可以使用带有每个项目的复选框的表格将其添加到他们的表单中。为了使其工作,表单项需要是多态的——它们都是表单项,但在它们呈现/收集的信息类型方面是独一无二的。(文本字段、组合、日期选择器等)。一旦ProjectUser做出决定并选择了他们想要的表单项,我就会将这些决定呈现在Form上。
我有点不清楚的部分是Form和User之间的关系。ProjectUser需要保存他们关于在表单中的某个地方包含哪些字段的决定。对我来说,有一个Form模型来存储这些决定是有意义的,所以每个Project都有一个Form,然后当用户想要注册一个项目时,我会根据Project中的数据构建一个注册表单s表格模型。生成的表单本身虽然是User的表单,而不是Form模型,因此当用户提交表单时,他们会登录并使用表单数据填充新的用户模型。
这有什么意义吗?