Có cách nào được xây dựng để yêu cầu một khối được chuyển tới phương thức Ruby không? Tôi nhận ra tôi chỉ có thể tăng một ngoại lệ nếu block_given?
là sai, nhưng có cách nào đẹp hơn để làm điều đó không?Làm thế nào để yêu cầu một khối trong Ruby?
18
A
Trả lời
22
Chỉ cần sử dụng yield
.
Nếu bạn bao gồm yield
trong một phương thức và một khối là không phải được cung cấp, nó sẽ phát ra lỗi.
Đặt điều này trong một tập tin và chạy nó:
def needs_block
yield
end
needs_block
Nó sẽ ném ra một lỗi như thế này:
LocalJumpError: no block given
from (irb):14:in `needs_block'
from (irb):16
9
raise 'need block' unless block_given?
+1
Đây là câu trả lời hay nhất, vì nó không có tác dụng phụ (tức là gọi khối). –
Các vấn đề liên quan
- 1. Yêu cầu HTTPS trong Ruby
- 2. Làm thế nào để thử một yêu cầu AJAX?
- 3. Làm thế nào để lưu trữ ruby khối mã
- 4. Làm thế nào để viết một helper trong Ruby on Rails để nắm bắt khối Haml?
- 5. Làm thế nào để gửi yêu cầu HTTP trong java?
- 6. Parametrized nhận được yêu cầu trong Ruby?
- 7. Làm thế nào để thực hiện một yêu cầu POST bên trong mã Sinatra?
- 8. Làm thế nào để kết thúc thực hiện một khối trong Ruby?
- 9. Ruby: làm thế nào để "yêu cầu" một tập tin từ thư mục làm việc hiện tại?
- 10. Yêu cầu HTTP song song trong ruby
- 11. Ruby yêu cầu đường dẫn
- 12. Làm thế nào để biến một phương thức Ruby thành một khối?
- 13. Làm thế nào để làm cho một tài sản yêu cầu trong C#?
- 14. gevent yêu cầu ổ cắm khối redis'
- 15. Yêu cầu Chương trình Ruby đợi một khoảng thời gian
- 16. Làm thế nào để ngăn chặn Node.js yêu cầu nhanh
- 17. Làm thế nào để ngăn trình duyệt yêu cầu favicon?
- 18. Làm thế nào để gỡ lỗi lỗi yêu cầu ajax?
- 19. Làm thế nào để sử dụng theo yêu cầu trong một ModelForm trong Django
- 20. Làm cách nào để gửi yêu cầu POST trong RestSharp?
- 21. Làm thế nào để gián điệp yêu cầu jQuery AJAX?
- 22. Tôi làm cách nào để có thể gửi yêu cầu trong Ruby on Rails?
- 23. Làm cách nào để có danh sách các tệp đã được `yêu cầu` trong Ruby?
- 24. lwp-yêu cầu trong vỏ: làm thế nào để làm cho yêu cầu POST với cơ thể?
- 25. Làm thế nào để tải lại Ext.tree.TreePanel theo yêu cầu?
- 26. Ruby on Rails Nhiều yêu cầu HTTP cùng một lúc?
- 27. Làm thế nào để vượt qua nhiều khối để phương pháp trong ruby?
- 28. Làm thế nào để POST yêu cầu sử dụng RestSharp
- 29. Làm thế nào để ngăn chặn ajax yêu cầu
- 30. Làm thế nào để theo dõi các biến truy cập trong ruby, khối, cho, mỗi, làm
Vâng đó là cách quá dễ dàng :) Cảm ơn! –