Ruby on rails 找不到模块中的控制器操作

Ruby on rails 找不到模块中的控制器操作,ruby-on-rails,ruby-on-rails-3,model-view-controller,Ruby On Rails,Ruby On Rails 3,Model View Controller,因此,我正在将Rails 2应用程序升级到Rails 3.2,这基本上进展顺利。然而,我有一个处理上传导入文件的控制器,importController,它使用模块Importable中的一些操作,该模块Importable向另一个控制器提供相同的操作 class ImportsController # standard REST stuff include Importable end module Importable def status # code to re

因此,我正在将Rails 2应用程序升级到Rails 3.2,这基本上进展顺利。然而,我有一个处理上传导入文件的控制器,importController,它使用模块Importable中的一些操作,该模块Importable向另一个控制器提供相同的操作

class ImportsController
   # standard REST stuff
   include Importable
end

module Importable
  def status
    # code to return json has of state machine status
  end
end

# routes
resources :imports do
  member do
    get :status
  end
end

这将导致:
找不到ImportController的操作“状态”
。如果我说,将状态操作复制到ImportController中,一切都很好,但是我必须在第二个控制器中执行相同的操作,所以boo复制。你知道是什么导致了这一切吗?

这是一个骗局。随着Rails的介绍,引入了ActionController::Metal,它定义了


所以我认为它爆炸了,因为Rails现在正试图使用我的方法来获取HTTP状态代码,爆炸了,因为它没有返回有意义的东西。将进行重构。

我认为按照您定义它的方式,
status
方法是类方法,而您需要实例方法。看这篇文章:(可能会帮助你)我实际上已经尝试过使用子模块方法。因为我们调用的是include,所以模块中的方法应该被视为类方法,而extend则将其视为类方法。无论如何,这两种方法似乎都不起作用。