У меня были некоторые расчеты на мой контроллер, как этотRails логики передовой практики
@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
Это работает, но это очень грязно, как мне следует продолжить?
Спасибо, человек, но мне пришлось перейти на 'food_expenses.sum (" value * amount ")' –