separation of concerns - Rails logic best practices -


i had calculations on controller this

@travel.food_expenses.map { |e| e.value * e.amount }.sum 

i know shouldn't have application logic on controller, created method on travel model

  def self.sum_food_expenses     self.food_expenses.map { |e| e.value * e.amount }.sum   end 

but return me undefined method sum_food_expenses travelscontroller

as workaround put methods on applicationcontroller as:

  def sum_food_expenses(travel)     travel.food_expenses.map { |e| e.value * e.amount }.sum   end 

it works very messy, how should proceed?

on travel model, def self.sum_food_expenses defined class method, not instance method. want def sum_food_expenses. in controller can call @travel.sum_food_expenses.

edit: also, not stickler, self.food_expenses.map { |e| e.value * e.amount }.sum o(2n), written food_expenses.sum { |e| e.value * e.amount }, o(n).


Comments

Popular posts from this blog

php - Submit Form Data without Reloading page -

linux - Rails running on virtual machine in Windows -

php - $params->set Array between square bracket -