我在lib目录中有一个名为“Transpo.rb”的模块:
module Transpo
class FT
def getCities
...
end
end
end
在控制器中我有
require 'Transpo.rb'
class TranspoController < ApplicationController
def index
@transpo = Transpo::FT.getCities()
respond_to do |format|
format.html # index.html.erb
format.json { render json: @transpo }
end
end
但是当我运行“http:// localhost:3000 / transpor”时总是会出错:
NoMethodError in TranspoController#index
undefined method `getCities' for Transpo::FT:Class
为什么呢?我已经在application.rb中设置了auto_load lib,但仍然存在同样的问题。
答案 0 :(得分:2)
getCities
被定义为实例方法,但您将其称为类方法。
使用instance = Transpo::FT.new
之类的内容创建实例,或将getCities
的定义更改为def self.getCities
,使其成为类方法。