【发布时间】:2014-09-22 14:43:40
【问题描述】:
我在我的控制器上进行了一些这样的计算
@travel.food_expenses.map { |e| e.value * e.amount }.sum
我知道我不应该在控制器上拥有应用程序逻辑,所以我在 Travel 模型上创建了一个方法
def self.sum_food_expenses
self.food_expenses.map { |e| e.value * e.amount }.sum
end
但这会返回给我undefined method sum_food_expenses for TravelsController
作为一种解决方法,我将所有这些方法放在 ApplicationController 上:
def sum_food_expenses(travel)
travel.food_expenses.map { |e| e.value * e.amount }.sum
end
它可以工作,但它非常非常混乱,我应该如何进行?
【问题讨论】:
标签: ruby-on-rails separation-of-concerns rails-models