NoMethodError rails

时间:2012-05-07 23:21:33

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

我在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,但仍然存在同样的问题。

1 个答案:

答案 0 :(得分:2)

getCities被定义为实例方法,但您将其称为类方法。

使用instance = Transpo::FT.new之类的内容创建实例,或将getCities的定义更改为def self.getCities,使其成为类方法。