我的应用程序控制器中有一个帮助方法,我需要在模型中使用(但显然我的视图也可以使用它)。从我正在阅读的内容来看,这是应该避免的,因为模型不应该在控制器中看到任何东西。所以我似乎需要重构我的代码或创建一个模块或什么,但我不知道正确的做法是什么?
这是我在应用程序控制器中的帮助方法:
def total_price
Product.where(id: basket.to_a).sum(:price)
end
非常感谢
答案 0 :(得分:1)
我建议你将它重构为模型类方法,如下所示:
class Product
def self.total_basket_price(basket)
where(id: basket.to_a).sum(:price)
end
end
然后您可以在模型中以及控制器和视图中使用它,只需调用:
Product.total_basket_price(basket)
希望这有帮助。
答案 1 :(得分:0)
在模型中添加以下内容
module Helper
extend ActionView::Helpers
extend YourModelHelper
end
并使用Helper.any_method