【问题标题】:classes under lib folder are not detected in rails在 rails 中未检测到 lib 文件夹下的类
【发布时间】:2010-11-10 09:15:33
【问题描述】:

在我的项目中,我在 lib 文件夹下编写了几个类,但 rails 在生产环境中没有检测到这些类。我得到未初始化的常量错误。

我在生产环境中使用 Apache,在开发环境中使用 Rails 脚本/服务器。

RAILS_ROOT 环境有什么问题吗?谁能建议如何克服这个问题?

【问题讨论】:

    标签: ruby-on-rails ruby production-environment ruby-on-rails-2


    【解决方案1】:

    我不确定 Rails,但您可以通过以下方式在 Ruby 中实现:(它也可以在 Rails 中工作,但 Rails 必须有一些优雅的方式)

    require File.join(File.dirname(__FILE__), "lib",'your_module_name')
    include your_module_name
    

    在config/application.rb 试试这个(我假设你有 rails3)

    config.load_paths += %W( #{config.root}/lib )
    

    更新:Rails - why would a model inside RAILS_ROOT/lib not be available in production mode?

    【讨论】:

    • 实际上我只在生产环境中遇到这个问题,它在开发环境中工作正常,任何原因
    • 这很奇怪。 lib 类在 Rails2 中自动加载。
    【解决方案2】:

    确保文件的名称与其中定义的类或模块的名称匹配,包括所有目录。

    即:

    lib/my_new_class.rb
    
    class MyNewClass
    end
    

    或者,如果您有目录层次结构:

    lib/my_files/my_module.rb
    
    module MyFiles
      module MyModule
      end
    end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-09-08
      • 1970-01-01
      • 1970-01-01
      • 2014-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多