我正在尝试运行命令 rake db:migrate ,但终端正在抱怨 ruby_executable_hooks 文件中可能存在语法错误。我找到了reference,但没有帮我解决问题。在文件的第一行,它看起来像 title =“ruby#{ARGV *”“}”导致问题,因为双引号未正确转义。我尝试了不同的逃避组合,但仍然没有运气。所以现在我不确定问题是真的与逃避问题或其他问题有关。非常感谢
请参阅 ruby_executable_hooks 文件
title = "ruby #{ARGV*" "}"
$0 = ARGV.shift
Process.setproctitle(title) if Process.methods.include?(:setproctitle)
require 'rubygems'
begin
require 'executable-hooks/hooks'
Gem::ExecutableHooks.run($0)
rescue LoadError
warn "unable to load executable-hooks/hooks" if ENV.key?
('ExecutableHooks_DEBUG')
end
eval File.read($0), binding, $0
错误讯息:
/Users/username/.rvm/gems/ruby-2.2.3/bin/ruby_executable_hooks:15:in `eval':
/Users/username/.rvm/rubies/ruby-2.2.3/bin/rake:4: syntax error, unexpected
tSTRING_BEG, expecting keyword_do or '{' or '(' (SyntaxError)
exec "$bindir/ruby" -x "$0" "$@"
^
from /Users/username/.rvm/gems/ruby-2.2.3/bin/ruby_executable_hooks:15:in
`<main>'
答案 0 :(得分:7)
找到解决此问题的方法
1 - delete the rake version from your system
2 - bundle install rake
3 - rake db:drop:all
4 - rake db:create:all
5 - rake db:migrate
由于某种原因,当我第一次使用命令rake db:migrate时,它损坏了ruby_executable_hooks文件(不明白为什么)。希望这会对某人有所帮助。
答案 1 :(得分:6)
$ gem install rake
为我工作。不需要删除任何东西。令人困惑的是,但是在耗时的rvm重新安装其他人提议之前尝试一下。
答案 2 :(得分:2)
我遇到了同样的问题并尝试了Eduardo的解决方案无济于事。对我有用的只是卸载我拥有的ruby版本(rvm uninstall 2.2.3
)并重新安装它。请注意,我根本没有触及数据库。