Ngăn bảng điều khiển rails in ra đối tượng ở cuối vòng lặp


84

Nếu tôi, giả sử, lặp qua tất cả các phiên bản của một mô hình nhất định và xuất ra một cái gì đó từ mỗi phiên bản, thì cuối cùng, irb sẽ vẫn in toàn bộ đối tượng.

Nếu đối tượng kết thúc bằng hàng trăm dòng, sẽ còn rất lâu trước khi tôi nhìn thấy những gì tôi thực sự đang tìm kiếm. Có cách nào để tắt tính năng này trong bảng điều khiển rails không?

Câu trả lời:


109

Nếu bạn không muốn tắt tiếng vọng nói chung, bạn cũng có thể gọi nhiều biểu thức trong một dòng lệnh. Chỉ đầu ra của biểu thức cuối cùng sẽ được hiển thị.

big_result(input); 0

3
đây thực sự là những gì tôi muốn.
dsp_099

3
Tôi thường làmbig_result(input); nil
nroose

101

Gọi conf.echo = falsevà nó sẽ không in giá trị trả về. Điều này hoạt động cho bất kỳ phiên irb nào, không chỉ bảng điều khiển Rails.

Trong trường hợp bạn muốn đặt nó vĩnh viễn, hãy thêm nó vào cấu hình irb của bạn.

echo 'IRB.conf[:ECHO] = false' >> $HOME/.irbrc

Bạn sẽ làm gì nếu bạn muốn luôn có trường hợp này theo mặc định?
Peter Berg

@Accipheran Tôi đoán đặt nó vào trình khởi tạo Rails sẽ hoạt động.
lulalala

Cảm ơn phản hồi, tôi thực sự thấy rằng chỉ cần ném dòng IRB.conf[:ECHO] = false, trong tệp .irbrc của tôi đã giải quyết được vấn đề đó. Tất nhiên, điều đó cũng tạo nên tiếng vang trong tất cả các phiên họp irb của tôi, nhưng tôi không sao với điều đó.
Peter Berg,

40

Để tạm thời ngăn bảng điều khiển in các giá trị trả về, bạn có thể đưa ra một nilcâu lệnh ở cuối vòng lặp hoặc hàm của mình, nhưng trước khi nhấn trả về.

record.each do |r|
  puts r.properties
end; nil

Hoặc nó cũng có thể là một số, nếu bạn muốn giảm việc nhập. Nhưng nó có thể gây nhầm lẫn trong các tình huống mà tôi không thể nghĩ ra.

record.each do |r|
  puts r.properties
end; 0

bạn là nhất!
diseaserandir, 27/07/18
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.