【问题标题】:custom_require.rb:36:in `require': no such file to load -- myapp(LoadError)custom_require.rb:36:in `require': 没有要加载的文件 -- myapp(LoadError)
【发布时间】:2011-08-19 04:48:31
【问题描述】:

我收到上述错误,我所做的只是安装 rvm 并从您使用 mac 获得的默认 ruby​​ 更新到 ruby​​ 1.9.2。

我所有的宝石都出现在宝石列表中,但我需要在某处指定路径吗?

干杯,

格伦诺。

【问题讨论】:

    标签: ruby macos rvm


    【解决方案1】:

    检查您是否安装了 gems gem list 如果没有,请照常安装 gem install whatever 或者如果您想要特定版本 gem install whatever -v 1.2.3 或者如果您的项目中有捆绑程序(即 Rails),它只是 bundle install

    如果您拥有所有的 gem,那么这可能是一个本地文件,并且您可能来自 Ruby 版本 $LOAD_PATH(这取决于太多因素,我无法在这里解释),或者指定你想要的文件的完整路径File.dirname(__FILE__) + '/myapp'

    否则,您需要提供更多信息,例如您之前运行的版本、myapp 是什么以及它与您的文件的关系。

    【讨论】:

    • 嗨,我认为这是第二点,我的 gem 列表很好,我来自 ruby​​ on mac osx 1.8.7 安装 rvm 到我的家庭驱动器,然后 rvm 安装 ruby​​ 1.9.2。如何修复我的加载路径,是在我的配置文件中还是在给出 custom_require 错误的文件中??
    • 每个应用程序的加载路径都不同。 Rubygems 已经管理了您的 gem 的加载路径,所以我假设 myapp 是一个本地文件,相对于需要它的文件,您需要它。在这种情况下,您可以执行require File.dirname(__FILE__) + '/myapp'(假设它们在同一个目录中)。或者,您可以将应用的根目录添加到加载路径,例如 $LOAD_PATH.unshift File.dirname(__FILE__)(假设此文件位于根目录中,并且是第一个加载的文件),然后要求所有相对于根目录的文件。
    • 抱歉 joshua,我是 osx 新手,我应该在哪里添加文件路径?让我给你一些背景信息,mongoblog 是项目,在它里面我运行 rackup config.ru 来启动 myapp.rb。我应该将 require file.dirname 放在 config.ru 文件还是 myapp.rb 中?
    • 废话,我添加了配置文件的路径,现在我得到了一个不同的错误。 dependencies.rb:239:in `require': 没有要加载的文件--views/layout (LoadError)
    • 我会将第二个示例 $LOAD_PATH.unshift File.dirname(__FILE__) 放在配置中。您的错误意味着 views 不是配置中的目录(或者您使用第一个示例)。在这种情况下,您需要从根(可能是require "app/views/layout")指定布局路径顺便说一句,如果这是 Rails,您可能做错了什么,因为所有这些都应该已经为您处理好了。
    【解决方案2】:

    就我而言,这是 rvm 问题,当我将其更改为 1.8 时,我使用的是 rvm 1.9,迁移成功了。

    rvm 使用 1.8

    【讨论】:

      【解决方案3】:

      就我而言,我正在转换为 Cygwin64。 Cygwin 目录名称更改,Ruby 升级到 1.9。在我修复了 Cygwin 目录名称后,第二个解决方案起作用了。或者至少解决了这个问题:

      需要 File.dirname(FILE) + '/myapp.rb'

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-11-30
        • 2016-05-09
        • 1970-01-01
        • 2011-12-11
        • 1970-01-01
        • 1970-01-01
        • 2011-09-02
        相关资源
        最近更新 更多