在Rails中放置数学计算的位置?

时间:2014-12-19 09:12:05

标签: ruby-on-rails code-organization

如果你不知道,这是一个初学者的问题。

在学习了一点Ruby之后,我冒险尝试了Rails,但在组织方法方面遇到了困难。我正在构建一些应该在某人创建某些东西时获取数据/参数的东西,但我不想像推文或博客文章那样显示它,我想在一些数学计算中将它们用作变量,我然后想要显示的结果。

现在,在Ruby中,我会为每个小数学运算创建一个方法,以确保它们(方法)每个都有一个责任。但是在Rails中,我该怎么办?如果您不了解我的问题,我认为这与我对Rails中的实例缺乏了解有关。 Ruby中的实例可以调用我创建的方法,但是我在哪里调用Rails中的方法(actions?)?

2 个答案:

答案 0 :(得分:1)

你应该遵循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

<强> LIB / math_calculator.rb

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

应用/视图/计算/ perform_calculations.html.erb

<%= @result %>

答案 1 :(得分:0)

没有任何正式的,我认为它可以帮助你

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