Файл Ruby: синтаксическая ошибка "ruby_executable_hooks"
Я пытаюсь запустить команду rake db: migrate, но терминал жалуется на возможную синтаксическую ошибку в файле ruby_executable_hooks. Я нашел эту ссылку , но не помог мне решить проблему. В первой строке файла это выглядит как 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" "[email protected]"
^
from /Users/username/.rvm/gems/ruby-2.2.3/bin/ruby_executable_hooks:15:in
`<main>'
Ответы
Ответ 1
Найден решение этой проблемы
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 (не знаю почему). Надеюсь, это поможет кому-то.
Ответ 2
$ gem install rake
работал у меня. Не нужно ничего удалять. Сбивать с толку, но попробуйте сделать это до того, как потребуются временные ресурсы rvm, которые другие предлагают.
Ответ 3
Я столкнулся с той же проблемой и попробовал решение Eduardo безрезультатно. Для меня работала просто с удалением рубиновой версии (rvm uninstall 2.2.3
) и ее повторной установкой снова. Обратите внимание, что я вообще не касался базы данных.