如何在Ruby文件中调用应用程序控制器方法?我无法使用传统的MVC架构。
谢谢!
答案 0 :(得分:0)
如果要从应用程序控制器和其他某个ruby文件调用该方法,则需要将该方法移动到另一个文件,可能是普通的旧Ruby对象(PORO)。然后,要求控制器中的文件以及任何其他文件需要使用它。
在控制器中只有控制器相关的逻辑是个好主意。因为你从控制器之外的东西调用这个方法,所以它不一定是严格的与控制器相关的逻辑,所以这是移动它的绝佳机会。
答案 1 :(得分:0)
如果您在ApplicationController
中有方法并且需要调用它,则可以使用以下方法:
ApplicationController.new.#method_here
但您最好将该方法移至插件并在ApplicationController
中调用它以获得最佳效果。
更多信息:
How do I call controller/view methods from the console in Rails?
答案 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文件中做同样的事情。