2009-01-25 50 views
3

我正在编写一个应用程序 - 类似于那里的许多应用程序 - 是90%的普通CRUD和10%的“果汁”,我们需要讨厌的业务逻辑和更多的灵活性和定制。如何在我的Rails应用程序的CRUD部分干?

关于这个90%,我试图尽可能地坚持DRY原则。只要控制器去,我已经发现resource_controller真的工作,我可以摆脱该地区的所有控制器,取而代之的是一个通用的控制器。

现在我想知道如何得到相同的意见。在这个应用程序,我有一个整体的,application.html.erb布局,然后我必须有另一个布局层,通用于所有CRUD意见和最后的“核心”部分:

  • 在index.html.erb所有我需要用我指出的字段和标签生成一个简单的表格。

  • 对于新的和编辑,也是一般形式的版本,指示标签和字段(如果需要可以提供自定义字段)。

  • 我不确定我需要显示,但是如果我这样做,它将与新建和编辑相同。

什么插件和工具(甚至文章和一般指针)会帮助我做到这一点?

谢谢, 菲利普。

+0

如果我理解正确,你已经DRYed控制器,现在你想要做同样的意见,是吗? – Chirantan 2009-01-26 09:33:56

回答

1

如果您DRYed了控制器和现在希望将干燥的意见,一种方法是render :action => *actionname*和存储可变成实例变量(这样他们可用视图)这样你就可以重新使用编辑同样观点的UI内容,列表显示。例如,您正在编辑与Foo相关的内容,那么您的标题应为Editing <%= @type %>,因此您的表单助手应该如此。 Foo很可能会改成。因此,你正在重复使用相同的视图为不同的实体(或我应该说的控制器)。请记住,与redirect_to不同,render :action仅呈现视图,并且不会调用它正在尝试呈现的操作的控制器操作。

有一件事是肯定的,如果你想干任何事情,你需要规范或遵循约定。例如,您的视图的结构,在这种情况下。

1

您可以运行script/generate scaffold test name:string description:text valid:boolean并查看生成的视图(并运行script/destroy scaffold test以删除文件)。这会让你很好地理解编写4个默认Rails视图的标准方式。

我还建议阅读“使用Rails进行敏捷Web开发”和“Rails方式”中的相关章节。

如果您有需要清理现有的观点,这个情节Railscasts的是巨大的:Cleaning Up the View

D进制

1

看起来有只是一个新的宝石了,这是非常接近你的要求:

http://github.com/codez/dry_crud

基于通用超(CrudController),你可以继承CRUD功能,为您的各种型号的控制器和适应那里特别的东西。这可能是你已经做过的。

有关dry_crud的新内容是视图和分支也是可继承的。您可以为每个CRUD操作定义一个通用基本模板,也可以将其分成几个部分。感谢提供的帮助者,可以通过查看当前模型的列定义来一般地定义表格和表格。在您的特定模型的视图中,您可以仅调整需要自定义的部分或视图。

看看上面的网站上找到的文件,保持干爽!

相关问题