0

在我正在开发的应用程序中,Courses有很多Problems,而这些又有很多Steps。现在有一个表格可以将问题添加到课程中(然后可以将步骤添加到这些问题中)。我们想要的是有一个只有一个 LaTeX 输入字段的表单,然后处理 TeX 以在他们的步骤中创建多个问题。

目前,我们在Problems控制器中完成这一切。我们有两种方法,texnew与 new 相同,只是它有一个不同的视图来重定向到另一个新方法:texcreate,它使用辅助方法来提取问题和步骤(使用一系列正则表达式),尝试创建它们,如果出现问题,会闪烁一些信息性错误消息。

问题是,我一直在读到我们真的不应该在控制器中做很多事情,我们应该更喜欢在模型中做事情。虚拟属性可能是接收文本字段并处理它以创建单个问题的正确想法,但我无法弄清楚如何使其适用于多个问题,或者如果出现问题如何生成任何类型的错误消息沿途某处出错。

有没有更好/更惯用的方法来做到这一点?

4

1 回答 1

1

如果您的所有关系都设置正确,您实际上并不需要虚拟属性。您可以使用新的 rails3 嵌套属性。这里有一篇关于它们的好文章。这将允许您更多地依赖模型验证逻辑,并保持 Rails 鼓励的精益控制器胖模型习语。

于 2011-06-07T22:29:57.773 回答