rails server bin/rails:6:警告:已初始化的常量APP_PATH错误

tob*_*obu 75 ruby-on-rails

我尝试了很多东西,比如卸载/重新安装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]
Run Code Online (Sandbox Code Playgroud)

在我的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'
Run Code Online (Sandbox Code Playgroud)

有没有人知道为什么我在运行rails时遇到错误?

我用谷歌搜索了,看起来像弹簧宝石有一个错误,但我似乎无法让它工作.

tob*_*obu 115

我在我的目录中找不到an_initilizer.rb,我尝试卸载/安装spring gem但它没有用.

然而,我确实设法最终使它工作.

显然与spring和rails 4+存在一些冲突.

我需要运行:

rake rails:update:bin 
Run Code Online (Sandbox Code Playgroud)

但我遇到了另一个错误:

Library not loaded: libmysqlclient.18.dylib
Run Code Online (Sandbox Code Playgroud)

我在另一个stackoverflow帖子上运行了以下命令:

sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib 
Run Code Online (Sandbox Code Playgroud)

然后运行原始命令:

 rake rails:update:bin 
Run Code Online (Sandbox Code Playgroud)

然后运行服务器命令:

 rails s
Run Code Online (Sandbox Code Playgroud)

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


小智 39

rake rails:update:bin 救援.


小智 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
Run Code Online (Sandbox Code Playgroud)


小智 5

这对我有用.

gem uninstall mysql2

bundle install 要么 gem install mysql2


gab*_*iel 4

我遇到了同样的错误。从 Gemfile 中删除了 spring 并重新捆绑。但这并不是真正的解决方案。

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

require "lib/a_file_i_need"
Run Code Online (Sandbox Code Playgroud)

我把它改成了

require "#{ Rails.root }/lib/a_file_i_need"
Run Code Online (Sandbox Code Playgroud)