Где поставить математические вычисления в Rails?

Если вы не знали, это вопрос новичка.

Изучив немного Ruby, я решился на Rails, но натолкнулся на кирпичную стену, когда дело доходит до методов организации. Я создаю что-то, что должно принимать данные / параметры, которые вы получаете, когда кто-то что-то создает, но вместо того, чтобы показывать это, как в твиттере или в блоге, я хочу использовать их как переменные в некоторых математических вычислениях, результаты который я тогда хочу показать.

Теперь в Ruby я бы сделал метод для каждой маленькой математической операции, чтобы убедиться, что они (методы) несут по одной ответственности. В Rails, однако, что я должен делать? Если вы не понимаете мою проблему, я думаю, что это связано с моим непониманием примеров в Rails. Экземпляры в Ruby могут вызывать методы, которые я делаю, но где мне вызвать мои методы (действия?) В Rails?

2 ответа

Решение

Вы должны следовать парадигме MVC:

Контроллер должен получить параметры, которые пользователь дал через некоторую HTML-форму.
Затем этот контроллер должен создать экземпляр объекта, который выполняет математические вычисления, а затем контроллер должен отобразить представление, чтобы представить результаты пользователю.

Место, где хранятся контроллер и представления, уже определено платформой:

контроллеры находятся в app/controllers и мнения в app/views/<controller_name>

Теперь вопрос в том, куда вы помещаете класс, который выполняет вычисления. Вы можете подумать о папке app/ models, но обычно она предназначена для моделей, которые наследуются от ActiveRecord::Baseвсе те, которые хранятся в базе данных.

Обычно тот класс, который вы реализуете, живет в lib папка.

Например, у вас может быть следующая структура:

приложение / контроллеры / calculations_controller.rb

def perform_calculations
  math_calculator = MathCalculator.new params[:operation]
  @result = math_calculator.calculate
end

Библиотека / math_calculator.rb

class MathCalculator
  def calculate
    # whatever you need to do here
  end
end

приложение / просмотров / расчеты / perform_calculations.html.erb

<%= @result %>

Там нет ничего официального, я думаю, что это помогает вам

http://www.caliban.org/ruby/rubyguide.shtml

Другие вопросы по тегам