Vale la pena señalar que si se tiene una matriz de objetos que desea pasar individualmente en un método de comunicación con un interlocutor diferente, como esto:
# erb
<% strings = %w{ cat dog mouse rabbit } %>
<% strings.each do |string| %>
<%= t string %>
<% end %>
Usted puede utilizar el método method
combinado con la expansión del bloque comportamiento para simplificar:
<%= strings.map(&method(:t)).join(' ') %>
Si usted no está familiarizado, lo que hace es method
encapsula el método asociado con el símbolo que se le pasa en un Proc y lo devuelve. El ampersand expande este Proc en un bloque, que pasa a map
bastante bien. El retorno de map
es una matriz, y es probable que desee formatearlo un poco más, por lo tanto, el join
.
La advertencia es que, como con Symbol#to_proc
, no puede pasar argumentos al método de ayuda.
Posible duplicado de [¿Convertir una matriz de enteros en una matriz de cadenas en Ruby?] (Http://stackoverflow.com/questions/781054/convert-an-array-of-integers-into-an-array- of-strings-in-ruby) – Nakilon