Railsserverbin/ails: 6: 警告: 已经初始化的常量 APP_PATH 错误

我尝试了很多方法,比如卸载/重新安装轨道和 Gems,但都没有用。

当我进入我的新项目并运行 Rails s 或者捆绑 exec Rails 服务器时,我得到了这个错误:

bin/rails:6: warning: already initialized constant APP_PATH
/Users/toabui/Sites/cms/bin/rails:6: warning: previous definition of APP_PATH was here Usage: rails COMMAND [ARGS]

在我的垃圾桶/栏杆里,我看到了这段代码:

#!/usr/bin/env ruby
begin
load File.expand_path("../spring", __FILE__)
rescue LoadError
end
APP_PATH = File.expand_path('../../config/application',  __FILE__)
require_relative '../config/boot'
require 'rails/commands'

有人知道为什么当我运行 Rails s 的时候总是出现这个错误吗?

我在谷歌上搜索了一下,发现春天的宝石好像有一个错误,但我似乎不能让它工作。

50818 次浏览

我也犯了同样的错误,把 spring 从 Gemfile 移除,然后重新捆绑销售,但这并不是一个真正的解决方案。

我在 config/initializers/an_initializer.rb中找到了创建此错误的代码

require "lib/a_file_i_need"

我把它改成了

require "#{ Rails.root }/lib/a_file_i_need"

在我的目录中找不到 an _ initiizer. rb,我尝试卸载/安装 spring gem,但是它不起作用。

不过我最终还是把它修好了。

显然有一些与弹簧和轨道4 + 的冲突。

我需要逃跑:

rake rails:update:bin

但我遇到了另一个错误:

Library not loaded: libmysqlclient.18.dylib

我在另一个 stackoverflow 文章中运行了以下命令:

sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib

然后运行最初的命令:

 rake rails:update:bin

然后运行服务器命令:

 rails s

现在我的 WebBrick 服务器正在运行。

我得到这个错误,试图更新 Rails 4和图像魔术和 rmagick。 所以我就跑了

Gem 卸载 rmagick

选择“所有版本”选项。然后再试一次

编辑: 这种情况刚才又发生在我身上,因为我试图在没有安装所需基础 gem 的情况下使用 gem。在我的例子中,解决方案是在尝试使用“ omniauth-google-oauth2”之前安装“ omniauth-google”,但是因为没有安装,我又得到了同样的错误

在尝试在 Vagrant 环境中启动应用程序时,输出了相同的错误消息。在应用程序代码没有任何变化之后,它突然出现了(随后出现了其他奇怪的行为,比如在试图运行应用程序时删除 development.rb)。

最后我只是停止了 VM 并重新启动它,然后一切都很好,所以我假设这是一个文件同步/共享文件夹的问题,也许?(默认使用流浪者共享文件夹)。

rake rails:update:bin前来救援。

在控制台运行这些程序:

rake tmp:clear
rake secret

我也犯了同样的错误。我在 Mavericks 上运行 ruby 2.1.3和 rails 4.1.6,然后我迁移到约塞米蒂,安装了4.2.0 rails 版本和 ruby 2.1.5,我在上一个版本中编写的应用程序不能与新版本一起工作,所以我用 RVM 编写了一些 gem 集,并安装了2.1.3版本。 现在,当我想要运行服务器时,我得到了这些错误:

bin/rails:6: warning: already initialized constant APP_PATH
/Users/Lexynux/_WebProjects/RoR_Apps/SAIIP2/bin/rails:6: warning: previous definition of APP_PATH was here
Usage: rails COMMAND [ARGS]

正如 Tobu 提到的,我逃跑了:

rake rails:update:bin

我知道了:

LoadError: dlopen(/Users/Lexynux/.rvm/gems/ruby-2.1.3@SAIIP2/extensions/x86_64-darwin-14/2.1.0-static/mysql2-0.3.16/mysql2/mysql2.bundle, 9): Library not loaded: libmysqlclient.18.dylib

然后我查了这个:

sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib

最后我重复了第一个命令终端机要求我这样做:

Overwrite /Users/Lexynux/_WebProjects/RoR_Apps/SAIIP2/bin/rails? (enter "h" for help) [Ynaqdh]

我只是输入“ Y”然后按回车键。

在经历了这一切之后,我开始工作并且进展顺利。

谢谢。

我收到这个错误升级后。

$ gem uninstall pg
$ gem install pg

帮我解决了这个问题。

如果 rake rails:update:bin给出额外的错误:

我最近一直在做一些服务器维护,并随后更新了 OpenSSL。

当我尝试运行 rake rails:update:bin命令时,出现了一个与 openSSL 相关的错误。

在重新构建了我的 Ruby 版本(使用 RVM‘ RVM reinstall Ruby-x.x.x’)之后,这两个错误都消失了。

我想这总是值得一试的。

我的问题是我使用的是一个过时的 Ruby 1.9.3版本,Rails 4.2。我升级到了2.1.2,删除了坏掉的项目,运行了 Rails 新博客来重新创建我的项目,导航到我新创建的应用程序,运行了 Rails 服务器,它运行良好。

我得到了同样的错误,它碰巧与 gem dotenv有关。 说明是添加以下到 Gemfile:

gem 'dotenv', :require => 'dotenv/rails-now'

但事实证明,是 dotenv/rails-now导致了这个错误。如果你使用 dotenv,就不需要 rails-now

是否在不同的分支中使用 pg 和 mysql? 如果是,请确认 db 配置文件。

如果您使用 El Capitan (OS X 10.11) ,安全完整性保护(Security Integrity Protection,SIP)将阻止链接到/usr/lib 来修复 mysql。将它链接到/usr/local/lib:

sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/local/lib/libmysqlclient.18.dylib

这是我的工作。

gem uninstall mysql2

bundle installgem install mysql2

我做完 brew upgrade之后就这样了。我的猜测是,即使没有错误消息指向本机扩展,这也破坏了一些 gem。

我最后做的是完全删除我安装的 gem (在我的情况下,我完全卸载并重新安装了使用 rbenv的 Ruby 版本)。
运行 bundle install重新编译了本机扩展,所有东西都再次运行。

我只是有这个问题,并发现它是由于这样的事实,我已经删除了一个 gem 从 gemfile 没有删除其他 require引用。在我的例子中,我只需要将它从 config/application.rb 中删除。

我会把对我有用的贴出来。

发表评论

gem 'spring'

加入 gem 'net-shh'

运行 bundle install

重启你的服务器

最近出现了这个错误,它是由 Spring 引起的,因为它在可执行文件中建议使用代码:

begin
load File.expand_path('../spring', __FILE__)
rescue LoadError
end

它最初期望在生产环境中出现一个 LoadError,但是通过这段代码,所有其他的加载错误也将被忽略。

因此,如果您有任何其他 LoadError在轨道加载过程(例如在路由/初始化)春天工人启动失败,然后有分支试图加载一切像没有弹簧。

对我来说,这个问题是捆绑包升级 rvm-capistrano 和其他事情的结果。
添加这个要求: 根据之前的文章,最后错误的修正了事情

gem  'rvm-capistrano',  require: false

虽然可能是一个额外的问题-因为运行 rake rails:update:bin可能有助于清除最初的问题。

我收到这个错误后,升级轨道。禁用 spring给我一个提示,问题是:

gem 'google-api-client', require: 'google/api_client'

改为:

gem 'google-api-client', '0.9'

问题解决了。