繁体   English   中英

如何在我的Rails应用程序的CRUD部分上干?

[英]How to DRY on CRUD parts of my Rails app?

我正在编写一个应用程序 - 与许多应用程序类似 - 有90%的常规CRUD和10%的“果汁”,我们需要讨厌的业务逻辑和更多的灵活性和自定义。

关于这90%,我尽可能地坚持DRY原则。 只要控制器运行,我发现resource_controller真的有效,我可以摆脱该区域的所有控制器,用通用控制器替换它们。

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

  • 在index.html.erb上,我需要生成一个包含我指示的字段和标签的简单表。

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

  • 我不确定我是否需要演出,但是如果我这样做,它将与新的和编辑相同。

什么插件和工具(甚至文章和一般指针)可以帮助我完成这项工作?

谢谢,菲利普。

看起来只有一个非常接近您要求的新宝石:

http://github.com/codez/dry_crud

基于一个常见的超类(CrudController),您可以为各种模型控制器继承CRUD功能并调整其中的特殊功能。 这是你已经做过的,最有可能的。

关于dry_crud的新事物是视图和部分也是可继承的。 您为每个CRUD操作定义一个公共基本模板,可能会分成几个部分。 由于提供的帮助程序,可以通过查看当前模型的列定义来一般性地定义表单和表。 在特定模型的视图中,您可以仅调整需要自定义的部分或视图。

看看上面网站上的文档并保持干燥!

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

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

如果你有现有的视图需要清理,这集Railscasts很棒: 清理视图

D进制

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

有一点可以肯定的是,如果你想干掉任何东西,你需要标准化或遵循惯例。 例如,在这种情况下,您的视图的结构。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM