【问题标题】:Cannot load such file located in lib directory无法加载位于 lib 目录中的此类文件
【发布时间】:2012-10-03 02:18:46
【问题描述】:

过去两天我一直在尝试在新计算机(ruby 1.9.3.p0 和 rails 3.2.6)上设置我的工作环境,当我尝试运行 rails server 或导轨控制台:

application.rb:7:in `require': cannot load such file -- acts_as_loggable/acts_as_loggable (LoadError)

这就是我的 application.rb 的样子:

require File.expand_path('../boot', __FILE__)

require 'acts_as_loggable/acts_as_loggable'
require 'acts_as_abusable/acts_as_abusable'
require 'acts_as_luba/acts_as_luba'


module MyProgram
  class Application < Rails::Application
    config.active_record.schema_format = :ruby

    # Custom directories with classes and modules you want to be autoloadable.
    config.autoload_paths += %W(#{config.root}/lib/)
    config.autoload_paths += %W(#{config.root}/app/models/game_mechanics)
    config.autoload_paths += Dir["#{config.root}/app/admin/"]
    config.autoload_paths += Dir["#{config.root}/app/models/"]
    config.active_record.pluralize_table_names = true
    config.action_view.sanitized_allowed_attributes = ['data-link']

我的acts_as_loggable.rb 文件位于lib/acts_as_loggable。除了我留在 application.rb 代码示例中的 3 个文件外,我所有其他文件都可以正常加载。

如果我硬编码路径/目录(见下文),我的应用就可以工作。

require './lib/acts_as_loggable/acts_as_loggable'
require './lib/acts_as_abusable/acts_as_abusable'
require './lib/acts_as_luba/acts_as_luba'

有没有人知道发生了什么以及如何让我的应用在没有硬编码路径的情况下运行?

谢谢。

【问题讨论】:

  • lib 目录不在您的$LOAD_PATH 中。为什么需要明确的require? Rails 自动加载不起作用?
  • @RenatoZannon 是的,没有要求它就无法工作。如何将 lib 目录添加到我的 $LOAD_PATH?
  • @RenatoZannon 看起来 Rails 3 不再支持自动加载每个stackoverflow.com/questions/3356742/…
  • 您是否尝试过将需求放入初始化程序中?也许 rails 会在启动的后期将 lib 目录添加到 $LOAD_PATH 本身。
  • @RenatoZannon 我试图避免更改文件,因为它是一个协作项目,我不想破坏其他人的应用程序。我将尝试找出一种方法让我的系统/环境指向正确的文件夹。

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


【解决方案1】:

您的requireconfig.autoload_path 之前。

【讨论】:

  • 这并没有提供问题的答案。要批评或要求作者澄清,请在其帖子下方发表评论。
  • 这不是批评或澄清要求。这是一个问题形式的答案。
猜你喜欢
  • 2013-03-29
  • 1970-01-01
  • 2015-08-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-20
  • 2023-03-10
  • 2015-11-20
相关资源
最近更新 更多