【发布时间】:2011-10-05 00:06:02
【问题描述】:
所以我试图自学 Rails,但在弄清楚逻辑的走向时遇到了一些麻烦。 在我的练习中,我有一个支付模式。 班期 整数积_类型 字符串产品名称
有处理付款的规则 如果 product_Type 是物理的,请执行此操作,如果是虚拟的,请执行此操作 如果 product_name 是 book,请执行此操作 如果product_name 是cow,就这样做
我不知道在哪里放置这些规则。 我是否在模型中创建了一个名为 process 的方法来运行这些规则?这个 go 逻辑是否进入控制器?我只是不清楚这一点。
任何见解将不胜感激。
谢谢
【问题讨论】:
-
我完全赞成胖模型的概念。我的问题是。随着我的业务规则随着时间的推移而扩展,我猜我不应该只是继续将它们添加到我的模型内部的流程方法中。随着数量的增加,规则是否还有位置?
-
老实说,有时你会得到非常胖的模特。这并不理想,但它可能会发生。使用 STI 分解相关功能会有所帮助。要考虑的另一件事是“得墨忒耳法则”(en.wikipedia.org/wiki/…)——您的模型中是否有真正处理单独资源问题的函数?把它们分开。还要寻找平凡的东西,而不是特定于您的模型,并将它们提取到您自己的模块或宝石中。这些东西可以防止胖模特变胖。
标签: ruby-on-rails ruby ruby-on-rails-3 model-view-controller