我正在开发一个应用程序,该应用程序允许来自公司不同部门的不同人员登录并编辑表单。每个部门在表单中都有特定的字段,只有他们可以编辑和查看。
如果我为整个字段集创建一个模型并根据谁登录,呈现包含必要字段的不同表单,是否会更有条理的代码?还是将特定部门的字段拆分为他们自己的模型,然后根据谁登录,呈现一个包含其特定字段的表单,并通过某种外键将来自不同部门的记录关联在一起会更好吗?
我正在开发一个应用程序,该应用程序允许来自公司不同部门的不同人员登录并编辑表单。每个部门在表单中都有特定的字段,只有他们可以编辑和查看。
如果我为整个字段集创建一个模型并根据谁登录,呈现包含必要字段的不同表单,是否会更有条理的代码?还是将特定部门的字段拆分为他们自己的模型,然后根据谁登录,呈现一个包含其特定字段的表单,并通过某种外键将来自不同部门的记录关联在一起会更好吗?
“这取决于”可能是最好的答案。你有几个领域?每个部门表单类型存在多少逻辑?
如果您将所有字段拆分为单独的模型(和相应的表格),如果您想要在填写表格后对其进行完整概述,那将变得很麻烦,因为它们将位于单独的表格中。您必须通过表格的每个关联才能获得完整的表格。
如果您仍然想拆分它们,因为每个部门都有很多逻辑,您可以使用table_name将所有模型指向一个包含所有字段的“主”表。这样,您就可以将所有数据放在一个表中,并且可以轻松检索它。但是,您还必须保存表单类型才能在正确的模型中检索它,这可能比它的价值更麻烦。(如果将所有字段保存在一个表中是最好的方法,那么它多久被检索一次,或者它是否更频繁地被插入/更新。)
简单的表格很可能适合一个模型。除非每个部门有很多不可共享的代码,否则将表单拆分为单独的模型可能不值得。如果您确实将表单拆分为模型,您可能应该创建一个主表单模型并让部门模型将其扩展为任何可重用的表单逻辑。
毕竟,我会说,我更喜欢简单,所以我可能会将它保存在一个模型中。
我会拆分字段,然后您可以使用Accept_nested_attributes_for设置您的模型以适当地构建您的表单。