Ruby on rails 如何从控制器/模型内部运行标准代码块?

Ruby on rails 如何从控制器/模型内部运行标准代码块?,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,我有一个“代码块”,它对数据执行计算,并根据这些计算更新一些表 我希望能够从多个位置引用这段代码,如下所示: # from controller or model def ... ... run `chunk of code` ... end 这是一个非常简单的问题-代码块将去哪里?我将如何让Rails从控制器/模型运行它?计算或表更新属于一个模型,那么在模型中定义一些新的类方法如何,例如 def self.calculate ... chunk of code ...

我有一个“代码块”,它对数据执行计算,并根据这些计算更新一些表

我希望能够从多个位置引用这段代码,如下所示:

# from controller or model
def ...
  ...
  run `chunk of code`
  ...
end

这是一个非常简单的问题-代码块将去哪里?我将如何让Rails从控制器/模型运行它?

计算或表更新属于一个模型,那么在模型中定义一些新的类方法如何,例如

def self.calculate
  ...
  chunk of code
  ...
end
然后可以从模型和控制器调用它

我通过执行以下操作来管理它:

def calculate
   chunk of code
end
然后从模型/控制器调用它:

def some_other_action
  ...
  @record.calculate (or self.calculate in model)
  ...
end

它叫什么名字?你能直接写下self.calculate吗?我试过self.calculate,但我无法从模型中调用它。定义
calculate
确实有效,请参见我上面的答案。不,self.method\u name表示类方法(与Java中的静态方法类似),您可以通过Model.calculate调用它。例如,如果你有一个汽车模型,并且在这个模型中定义了self.calculate,那么你几乎可以在任何地方调用Car.calculate。。。如果您定义的计算方法没有self关键字,它的对象的方法,而不是类。。。希望这有帮助