在ruby文件中调用ApplicationController方法

时间:2015-01-12 17:55:36

标签: ruby-on-rails applicationcontroller

如何在Ruby文件中调用应用程序控制器方法?我无法使用传统的MVC架构。

谢谢!

3 个答案:

答案 0 :(得分:0)

如果要从应用程序控制器和其他某个ruby文件调用该方法,则需要将该方法移动到另一个文件,可能是普通的旧Ruby对象(PO​​RO)。然后,要求控制器中的文件以及任何其他文件需要使用它。

在控制器中只有控制器相关的逻辑是个好主意。因为你从控制器之外的东西调用这个方法,所以它不一定是严格的与控制器相关的逻辑,所以这是移动它的绝佳机会。

答案 1 :(得分:0)

如果您在ApplicationController中有方法并且需要调用它,则可以使用以下方法:

ApplicationController.new.#method_here

但您最好将该方法移至插件并在ApplicationController中调用它以获得最佳效果。

更多信息:

How do I call controller/view methods from the console in Rails?

https://stackoverflow.com/a/9159853/2552259

答案 2 :(得分:0)

解决问题的最佳方法是提取相关方法并将其放在模块中,例如lib/my_utils.rb。然后,您可以在需要的地方使用此文件:

# lib/my_utils.rb
module MyUtils
  def the_method_you_were_talking_about(args)
    .. code ..
  end
end

然后:

# application_controller.rb
require 'lib/my_utils.rb'
MyUtils.the_method_you_were_talking_about("and any data you need to pass to it")

然后你从其他ruby文件中做同样的事情。