在Rails中自动执行常见CRUD操作的好主意

时间:2010-01-27 09:26:16

标签: ruby-on-rails templates automation crud configurable

短版:允许最终用户在相当大的项目中定义“进程”或顺序执行CRUD操作的一些好方法,这样他们就可以构建模板对于常见流程(比如为每个自动发布的新事件创建2张票)?类似于Cucumber,但对于CRUD操作......,甚至是Selenium

情况如下:

我继承了一个非常大的项目(Spree eCommerce project),我正在为客户修改它。这是一个非常复杂且非常完美的项目。创建ProductsProductGroups,类别等的大部分/全部工作流程定义得非常明确,这意味着它们可以实现自动化。

所以我的客户希望能够说“当我创建新的Event时,我希望它也能创建它:

  • 两张门票:1张400美元,1张500美元,在我们创建活动后的X和Y时间开始销售
  • 如果它是这个 Event,也可以创建这个“早鸟”特辑。“

这可以转换为create/save - 4个,可能更多,模型在Spree:Event, Product, ProductGroup, ProductProperty

如果我要手动解决这个边缘情况,我必须编写相当多的代码并进行一些严格的重构(或复制粘贴),以便我的客户可以为他们创建的每个事件创建票证。但是下一个案例呢,“我希望它根据事件datelocation 下的每个故障单进行分类,以及meta_keywords“。现在我必须重新开始......

我希望能为他们做的是允许他们配置所有这些东西,以便他们可以定义:

  • 各种默认值,以填写产品说明,价格等。
  • 根据活动标题创建X个产品。
  • 以后可能会有更多的事情。

所有这一切的最终结果是,Admin填写了一个表单,它在后台填写了5个表单(他们不需要知道的事情,但需要完成)。

我不知道最好或最常用的方法。在我走的时候我正在搞清楚,但我相信你们中的许多人对此都有一些好主意。

所以问题是:

使所有这些都可配置的最佳方式是什么?

Spree有许多我需要埋在控制器中的方法,所以好的做法似乎是不在控制器中包含任何方法,只引用模块中的方法(所以你可以在任何地方重用它) 。除非你被允许将多个redirect_to电话连接在一起,否则你就不会。

对于最终用户,是否有任何具有此类可配置性的示例?像ERB模板那样用于顺序CRUD操作?

我是否真的需要手动编写所有这些案例?

上面的示例(基于某些属性值为每个事件创建2-3个票证)非常具体。你们中的任何人都能够创建一个可配置的系统吗?最终的目标是让他们像“哦,我不止一次这样做,让我们为这个事件制作一个模板,以便下次创建我所做的一切”。

只是寻找正确方向的某种推动力,或者在工作流程自动化方面的一些好例子。像Cucumber这样的东西,但对于CRUD操作......

谢谢!

0 个答案:

没有答案