Nó đáng chú ý rằng nếu bạn có một mảng của các đối tượng bạn muốn vượt qua cá nhân vào một phương thức với một người gọi khác nhau, như thế này:
# erb
<% strings = %w{ cat dog mouse rabbit } %>
<% strings.each do |string| %>
<%= t string %>
<% end %>
Bạn có thể sử dụng method
phương pháp kết hợp với mở rộng khối hành vi để đơn giản hóa:
<%= strings.map(&method(:t)).join(' ') %>
Nếu bạn không quen thuộc, những gì method
làm là đóng gói phương pháp gắn liền với biểu tượng truyền cho nó trong một Proc và trả về nó. Dấu và mở rộng Proc này thành một khối, được chuyển đến map
khá độc đáo. Sự trở lại của map
là một mảng, và chúng tôi có thể muốn định dạng nó một chút độc đáo hơn, do đó các join
.
Thông báo trước là, giống như với Symbol#to_proc
, bạn không thể chuyển đối số cho phương thức trợ giúp.
Bản sao có thể có của [Chuyển đổi một mảng các số nguyên thành một mảng các chuỗi trong Ruby?] (Http://stackoverflow.com/questions/781054/convert-an-array-of-integers-into-an-array- of-strings-in-ruby) – Nakilon