我尝试了很多东西,例如卸载/重新安装rails和gem,但无济于事。
当我进入我的新项目并运行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]
在我的bin / rails中,我看到了这段代码:
#!/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时遇到错误吗?
我用谷歌搜索过,看起来弹簧宝石出现了错误,但我似乎无法让它发挥作用。
答案 0 :(得分:115)
我在我的目录中找不到an_initilizer.rb,我尝试卸载/安装spring gem但它没有用。
然而,我确实设法最终使它发挥作用。
显然与spring和rails 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服务器正在运行。
答案 1 :(得分:39)
rake rails:update:bin
救援。
答案 2 :(得分:13)
如果您使用的是El Capitan(OS X 10.11),安全完整性保护(SIP)将阻止链接到/ usr / lib以修复mysql。将其链接到/ usr / local / lib中:
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/local/lib/libmysqlclient.18.dylib
答案 3 :(得分:5)
这对我有用。
gem uninstall mysql2
bundle install
或gem install mysql2
答案 4 :(得分:3)
我得到了同样的错误。从Gemfile中删除了弹簧并重新捆绑。虽然不是真正的解决方案。
我找到了在config/initializers/an_initializer.rb
require "lib/a_file_i_need"
我改为
require "#{ Rails.root }/lib/a_file_i_need"
答案 5 :(得分:2)
我通过尝试更新rails 4和imagemagick以及rmagick来解决此错误。 所以我跑了
gem uninstall rmagick
选择“所有版本”选项。然后再试一次
编辑:刚刚和我一起开心,因为我尝试使用宝石而不安装所需的基础宝石。在我的情况下解决方案是在尝试使用'omniauth-google-oauth2'之前安装'omniauth-google',但因为我没有安装我再次遇到同样的错误
答案 6 :(得分:2)
在做brew upgrade
之后发生了这件事。我的猜测是,这打破了一些带有原生扩展的宝石,即使没有指向它的错误消息。
我最终做的是彻底删除已安装的宝石(在我的情况下,我完全卸载并使用rbenv
重新安装了ruby版本。)
运行bundle install
重新编译了本机扩展,一切都在重新运行。
答案 7 :(得分:2)
升级postgresql后我收到此错误。
$ gem uninstall pg
$ gem install pg
为我解决了这个问题。
答案 8 :(得分:1)
升级rails后我收到此错误。禁用spring
会向我提示问题是:
gem 'google-api-client', require: 'google/api_client'
更改为:
gem 'google-api-client', '0.9'
解决了这个问题。
答案 9 :(得分:1)
我会发布对我有用的内容。
评论
gem 'spring'
添加gem 'net-shh'
并运行bundle install
然后重新启动服务器
答案 10 :(得分:1)
你在不同的分支机构中使用pg和mysql吗?如果是,请确认db config file。
答案 11 :(得分:1)
我收到同样的错误,它与gem dotenv
有关。
说明是将以下内容添加到Gemfile:
gem 'dotenv', :require => 'dotenv/rails-now'
但事实证明,dotenv/rails-now
导致错误。如果您使用dotenv
请求rails-now
答案 12 :(得分:1)
我得到了同样的错误。我在小牛队上运行了ruby 2.1.3和rails 4.1.6然后我迁移到Yosemite并安装了4.2.0 rails版本的ruby 2.1.5并且我在之前版本中制作的应用程序没有使用新的,所以我用RVM制作了一些宝石套装并安装了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]
至于提到的我跑了:
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'并点击返回。
毕竟,我开始工作并顺利进行。
感谢。
答案 13 :(得分:0)
我的问题是我使用过时版本的ruby 1.9.3和rails 4.2。我升级到2.1.2,删除了破坏的项目,运行rails新博客重新创建我的项目,导航到我新创建的应用程序并运行rails服务器,它工作。
答案 14 :(得分:0)
rake rails:update:bin
出现其他错误:我最近一直在做一些服务器维护,随后更新了OpenSSL。
当我尝试运行rake rails:update:bin
命令时,出现了与openSSL相关的错误。
重建了我的Ruby版本(`rvm重新安装ruby-x.x.x'使用RVM),两个错误都消失了。
我猜这总是值得一试。
答案 15 :(得分:0)
我刚遇到这个问题,发现它是由于我从gemfile中删除了一个gem而没有删除其他require
引用这一事实。在我的情况下,我只需要从config / application.rb中删除它。
答案 16 :(得分:0)
在控制台中运行这些:
rake tmp:clear
rake secret
答案 17 :(得分:0)
最近有这个错误,它是由spring引起的,因为它在可执行文件中建议了代码:
begin
load File.expand_path('../spring', __FILE__)
rescue LoadError
end
它原本期望弹簧本身生成LoadError
,但是通过此代码,所有其他加载错误也将被忽略。
因此,如果在rails加载过程中有任何其他LoadError
(例如在routes / init中),spring worker启动失败,然后会出现尝试再次加载所有内容的分支,就像没有弹簧一样。
答案 18 :(得分:0)
对我来说,这个问题是由于捆绑升级rvm-capistrano等问题而出现的
添加此内容需要:根据之前的Camera#takePicture
gem 'rvm-capistrano', require: false
虽然可能是一个额外的问题 - 因为正在运行rake rails:update:bin
可能有助于解决最初的问题。
答案 19 :(得分:0)
尝试在Vagrant环境中启动应用程序时,我输出了相同的错误消息。在对应用程序代码进行零更改后(以及其他奇怪的行为,例如在尝试运行应用程序时删除了development.rb),它突然冒出来。
最后我简单地停止了VM&重新启动它,一切都很好,所以我假设它可能是文件同步/共享文件夹的问题? (正在使用默认的Vagrant共享文件夹)。