来自Controller的调用模块功能(NoMethodError)

时间:2011-07-06 23:37:40

标签: ruby-on-rails ruby-on-rails-3 module controller

所以我有一个模块“MiddleMan”我可以在rails控制台中调用它,但在控制器中我得到NoM​​ethodError

在控制器中我有:

class SignUpController < ApplicationController
  include MiddleMan
  def page_one
      @package = MiddleMan::read_catalog("a", "b", "c")
  end
end

在middleman.rb模块中,我有:

module MiddleMan
  def read_catalog(package, payment, coupon)
    Package.new(:price => "4.99")
  end
end

有什么想法吗?

1 个答案:

答案 0 :(得分:14)

由于您包含了模块,因此实例方法read_catalog已添加到您的类中,因此您可以直接调用它:

class SignUpController < ApplicationController
  include MiddleMan
  def page_one
      @package = read_catalog("a", "b", "c")
  end
end