我在Rails应用程序中组织一些资源时遇到了小问题。 让我们说:
# app/models/bucket.rb
class Bucket < ActiveRecord::Base
end
我想添加一个简单的类来对Bucket
进行一些计算,让我们说:
class ItemsCalculator
end
和...
class ShippingCostCalculator
end
我应该如何组织这三个类,并考虑与Bucket
的逻辑关系。
我有几个选择:
1)
app/models/bucket -> Bucket
app/models/bucket/items_calculator -> Bucket::ItemsCalculator
app/models/bucket/shipping_cost_calculator -> Bucket::ShippingCostCalculator
2)
app/models/bucket -> Bucket
lib/bucket/items_calculator -> ItemsCalculator
lib/bucket/shipping_cost_calculator -> ShippingCostCalculator
3)
app/models/bucket -> Bucket
lib/bucket/items_calculator -> Bucket::ItemsCalculator
lib/bucket/items_calculator -> Bucket::ShipingCalculator
您更喜欢哪种版本?
答案 0 :(得分:2)
模型应该处理应用程序的业务逻辑。模型不需要从ActiveRecord::Base
继承为模型。所以这些计算器类听起来像我的模型。
所以我认为他们进入app/models
。但它们是否适用于任何一般方式?或者他们仅适用于Bucket
?如果它们仅适用于Bucket
,则选项1有意义。
但如果它们适用于其他型号,或者可以单独使用,我可能会建议:
app/models/bucket -> Bucket
app/models/items_calculator -> ItemsCalculator
app/models/shipping_cost_calculator -> ShippingCostCalculator
但我的预感是你想要选项1。