ruby-on-rails - 从 Controller 调用模块函数 (NoMethodError)

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

所以我有一个模块“MiddleMan”我可以在rails控制台中调用它但在 Controller 中我得到一个NoMethodError

在 Controller 中我有:

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

有什么想法吗?

最佳答案

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

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

关于ruby-on-rails - 从 Controller 调用模块函数 (NoMethodError),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6604272/

相关文章:

ruby-on-rails - 正在尝试安装 libv8, "failed to build gem native extension"

perl - 安装 Bio::DB::Sam perl 模块

javascript - 我想动态加载到入口点的 Webpack 捆绑模块

javascript - 无法从导入中引入 Vue,但如果我将它引入 html 文件中,则可以访问它

ruby-on-rails - 运行 rails 脚本/生成脚手架命令时找不到 gem 'mysql2..'

ruby-on-rails - 重新启动 resque 工作人员的优雅方式

ruby-on-rails - 在Rails3中覆盖到/(根)的资源路由: not changing the path helper?

ruby-on-rails - 尝试设置 Amazon 的 S3 存储桶 : 403 Forbidden error & setting permissions

ruby-on-rails - 事件模型序列化器将所有日期转换为秒

ruby-on-rails - RubyMine 显示错误消息 : "Error running Development: MyProject: Rails 3.x launcher script was found instead of Rails 4.x one"