2011-02-02 13 views
18

Znam polecenie, które działa, aby to zrobić, ale nie rozumiem dlaczego. Co robi `...` w tym kontekście.Jak sprawdzić listę klejnotów na heroku

wiem, że mogę uruchomić:

heroku console 
`gem list` 

lub

heroku console 
`gem list`.split("\n") 

aby uzyskać ładny wyjście, ale nie rozumiem, co to robią. Dlaczego ``?

Odpowiedz

36

Zaktualizowałem to w przypadku, gdy ktoś zdarzy się spotkać heroku console, ponieważ został wyłączony.

heroku run gem list 

Zobacz perełki zainstalowany poprzez: git

heroku run bundle show 
+1

Najlepsza odpowiedź IMHO. – Hauleth

+0

Zauważyłem, że nie wyświetlają się klejnoty zainstalowane przez git. Czy jest jakiś sposób, aby zobaczyć te klejnoty? – Carpela

+0

Zgodnie z Dokumentacją Bundler, klejnoty ze źródeł git nie pojawią się na liście gemów, ponieważ polecenie gem nie może ich przetworzyć, więc Bundler musi sam wykonać całą pracę. Bundler przechowuje te klejnoty w swojej własnej lokalizacji. Zamiast tego możesz zrobić '' heroku run bundle show'' – ahmet

8

Cofa tyknięcie skutecznie wywołuje wywołanie systemowe i zwraca odpowiedź, która została zapisana na standardowe wyjście. Spójrz na numer Kernel ruby docs, aby uzyskać więcej informacji.

+0

, więc w prostym angielskim oznacza to, że pozwala ci wyjść z środowiska railsowego, które uruchamiasz na serwerze i wydać komendę do samego systemu serwera ??? –

+0

W prostym języku angielskim to prawie tyle, tak. –

7

heroku console to po prostu działa konsola irb na zdalnym komputerze, więc jesteś w rubinowej konsoli, kiedy to robisz. Backticks (`) to standardowy sposób uruchamiania polecenia systemowego w ruby.

1

W języku Ruby można uruchomić polecenie systemowe, korzystając z Kernel#exec lub umieszczając zawartość w odsunięciach. Jest to to samo, co wpisanie gem list w wierszu poleceń i uzyskanie wyniku z powrotem jako ciągu znaków.

1

Przykładowo

heroku run 'gem list' 

becouse

heroku console 

jest usuwany z Heroku

Powiązane problemy