我可以通过调用方法从控制器访问 Module class 方法吗?
can i access Module class method from controller just by calling the method?
我在 lib/api_client 中有以下模块:
request.rb
module APIClient
class Request
require 'digest/sha1'
require "net/http"
require "uri"
def self.venues_response
...
end
end
end
我在我的控制器 class 中包含这样的内容:
class VenuesController < ApplicationController
include APIClient
我想从 venues_controller 内部访问它的方法,如下所示:
venues_response
但是我收到以下错误:
undefined method `venues_response' for #<VenuesController:0x007f9ee058ad00>
如果我试试这个:
Request.venues_response
我得到:
uninitialized constant VenuesController::Request
唯一的方法似乎是这样的:
APIClient::Request.venues_response
有没有办法让调用更简单?我错过了什么吗?
编辑:
忘记提及 application.rb 上已经添加了自动加载:
config.autoload_paths += %W(#{config.root}/lib)
将 request.rb
重命名为 api_client.rb
。
我在 lib/api_client 中有以下模块:
request.rb
module APIClient
class Request
require 'digest/sha1'
require "net/http"
require "uri"
def self.venues_response
...
end
end
end
我在我的控制器 class 中包含这样的内容:
class VenuesController < ApplicationController
include APIClient
我想从 venues_controller 内部访问它的方法,如下所示:
venues_response
但是我收到以下错误:
undefined method `venues_response' for #<VenuesController:0x007f9ee058ad00>
如果我试试这个:
Request.venues_response
我得到:
uninitialized constant VenuesController::Request
唯一的方法似乎是这样的:
APIClient::Request.venues_response
有没有办法让调用更简单?我错过了什么吗?
编辑:
忘记提及 application.rb 上已经添加了自动加载:
config.autoload_paths += %W(#{config.root}/lib)
将 request.rb
重命名为 api_client.rb
。