我在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库,但继续遇到同样的问题。
getCities
定义为实例方法,但您将其调用为类方法。
要么创建一个类似 instance = Transpo::FT.new
的实例,要么更改要def self.getCities
的getCities
的定义以使其成为类方法。