Rails - 如何克服重复的REST控制器

时间:2012-07-20 09:48:55

标签: ruby-on-rails rest scaffolding

我终于开始从头开始制作一个Rails应用了,我已经掌握了它,但唯一的问题是让所有的模型/控制器变得非常重复并完全抛弃整个DRY概念因为我基本上是复制控制器并重命名它们/添加/禁用字段。我有:

项目 人 任务 消息

等前三个需要几乎相同的布局和CRUD。是不是每次脚手架都不必手动创建所有动作/视图的唯一方法?如果是这样,脚手架产生的其他东西我需要注意。我过去一直在谨慎使用它,因为我想知道我的应用程序在教程中是如何工作的。

2 个答案:

答案 0 :(得分:1)

在我看来,脚手架不适用于新的rails程序员,只有在你自己想出rails并采用批评方法之后才能使用它。它可能会生成您不需要的整个文件,定义不需要的路线等...

您可以查看脚手架创建的完整详细信息here

对于您正在制作的重复控制器,我可以建议使用gem InheritedResources,这可以消除大量的重复(至少在您处理基本的CRUD控制器操作时)

InheritedResources为您设置基本控制器索​​引/ show / destroy / create / edit操作,您所要做的就是使用以下方法继承它:

class ProjectsController < InheritedResources::Base
end

如果必须,您可以通过自己定义操作来覆盖操作。

答案 1 :(得分:1)

这是一个很好的观点。您通常希望保持控制器尽可能薄,并且确实比脚手架提供的更薄。

我喜欢考虑脚手架的方式是,在新的Rails应用程序中使用第一个功能作为当前最佳实践和您可能想要了解的事项的示例是很好的。然而,在那之后,自己编写控制器,并考虑任何重复。

有关其他想法,您可能需要阅读/观看...