Ruby文件:“ruby_executable_hooks”语法错误

时间:2015-08-31 10:17:49

标签: ruby-on-rails ruby gem rake

我正在尝试运行命令 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>'

3 个答案:

答案 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)并重新安装它。请注意,我根本没有触及数据库。