2011-02-02 31 views
18

Tôi biết lệnh hoạt động để thực hiện việc này, nhưng tôi không hiểu tại sao. `...` làm gì trong ngữ cảnh này.Cách kiểm tra danh sách đá quý trên heroku

Tôi biết tôi có thể chạy:

heroku console 
`gem list` 

hoặc

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

để có được một kết quả tốt đẹp, nhưng tôi không hiểu những gì những đang làm. Tại sao lại là ``?

Trả lời

36

Tôi đã cập nhật trường hợp này trong trường hợp ai đó tình cờ gặp phải heroku console vì nó đã bị vô hiệu hóa.

heroku run gem list 

Hiện đá quý cài đặt qua: git

heroku run bundle show 
+1

Câu trả lời hay nhất IMHO. – Hauleth

+0

Tôi thấy rằng điều này không hiển thị đá quý được cài đặt thông qua git. Có cách nào để xem những viên đá quý đó không? – Carpela

+0

Theo tài liệu Bundler, đá quý từ các nguồn git sẽ không hiển thị trong danh sách đá quý vì lệnh gem không thể xử lý chúng, vì vậy Bundler phải tự làm tất cả công việc. Bundler lưu trữ những viên đá quý này ở vị trí riêng của nó thay thế. Bạn có thể thực hiện '' heroku run bundle show'' – ahmet

8

Ve quay lại thực hiện cuộc gọi hệ thống một cách hiệu quả và trả về phản hồi đã được ghi vào chế độ xuất chuẩn. Hãy xem Kernel ruby docs để biết thêm thông tin.

+0

vì vậy, trong tiếng Anh đơn giản này về cơ bản có nghĩa là nó cho phép bạn bước ra khỏi môi trường đường ray bạn đang chạy trên máy chủ và đưa ra một lệnh cho chính hệ thống máy chủ? –

+0

Bằng tiếng Anh đơn giản, khá nhiều –

7

heroku console về cơ bản đang chạy bảng điều khiển irb trên máy tính từ xa, vì vậy bạn đang ở trong bảng điều khiển ruby ​​khi bạn làm điều đó. Backticks (`) là một cách tiêu chuẩn để chạy một lệnh hệ thống trong ruby.

1

Trong Ruby, bạn có thể chạy lệnh hệ thống bằng cách sử dụng Kernel#exec hoặc bằng cách đặt nội dung vào dấu gạch chéo ngược. Điều này giống như nhập gem list trên dòng lệnh và nhận kết quả dưới dạng chuỗi.

1

Ví dụ

heroku run 'gem list' 

Becouse

heroku console 

được lấy ra từ Heroku

Các vấn đề liên quan