无法从Rails中的lib解析模块

时间:2015-04-18 02:21:01

标签: ruby-on-rails-4

如果我在lib的文件中写一个类,我就能找到它。如果我在同一个文件中写一个模块,我找不到它。我错过了什么吗?

文件如下:

File structure

文件内容为:

class Cool
end

module Flags
  Countries = []
end

如果我尝试从控制器中调用它们:

class MainController < ApplicationController
  def index
    Cool.new # works
    Flags::Countries # uninitialized constant MainController::Flags    
  end
end

1 个答案:

答案 0 :(得分:0)

可能不是您的具体方案的解决方案,只是几个相关点:

Rails自动加载需要类/模块遵循命名空间规则:

Flags::Countries -> <autoload paths>/flags/countries.rb

http://urbanautomaton.com/blog/2013/08/27/rails-autoloading-hell/

不要认为/ lib /是标准的自动加载路径,因此您需要确保将其添加到您的路径中。