2015-08-31 12 views
10

Sto cercando di eseguire il comando rake db: migrate ma il terminale si lamenta un possibile errore di sintassi nel file ruby_executable_hooks. Ho trovato questo reference ma non mi ha aiutato a risolvere il problema. Sulla prima riga del file appare come title = "ruby # {ARGV *" "}" causa il problema poiché le virgolette doppie non vengono sfuggite correttamente. Ho provato diverse combinazioni di fuga ma ancora senza fortuna. Così ora non sono sicuro se il problema è in realtà relativo a problemi di escape o qualcos'altro. Molte graziefile di Rubino: "ruby_executable_hooks" Errore di sintassi

Si veda qui sotto la ruby_executable_hooks file di

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 

Messaggio di errore:

/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>' 
+0

Non riesco a ottenere ciò che hai provato ad esprimere con 'title =" ruby ​​# {ARGV * ""} "', ma stai tentando di moltiplicare l'istanza di 'Array' con l'istanza' String'. Cosa ti aspetti di ottenere? – mudasobwa

+0

Non sto cercando di moltiplicare nulla + Non ho scritto questo file. È un file gem e quanto sopra è la sua configurazione predefinita. – Bob

+0

Cerca in .rvm/gems/ruby-2.2.0/bin puoi vedere come si presenta il file. – Bob

risposta

7

ha trovato la soluzione per questo problema

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 

Per qualche ragione, quando ho usato il comando rake db: migratelo corrompendo ted il file ruby_executable_hooks (nessuna idea del perché). Spero che questo aiuti qualcuno.

+3

'gem install rake' ha risolto il problema per me –

+0

Non dovrebbe 2 essere' gem install rake'? – jbnunn

2

Mi sono imbattuto nello stesso problema e ho provato inutilmente la soluzione di Eduardo. Quello che ha funzionato per me è stato semplicemente disinstallare la versione ruby ​​che avevo (rvm uninstall 2.2.3) e reinstallarla di nuovo. Si noti che non ho toccato affatto il database.

+1

Ho fatto un errore di disinstallazione della gemma, ha detto che è una gemma predefinita e non può essere cancellata. Poi ho scritto gem install rake e il mio rake è stato corretto. – nurettin

+1

Interessante. Non ho potuto disinstallare né installare rake. Così, ho ripristinato l'installazione di Ruby e questo ha funzionato. – Yevgeniy

5

$ gem install rake

ha lavorato per me. Non ho bisogno di cancellare nulla. Confondere è, ma provalo prima che il tempo che consuma rvm reinstalla gli altri stanno proponendo.