2011-05-22 12 views
32

¿Es posible recorrer los atributos de un objeto en Rails? Tengo un objeto y en lugar de codificar cada atributo en la vista, quiero mostrar cada uno de ellos en la vista, ya que son bastantes.Atributos de lazo sobre objeto en Ruby on Rails

Tengo un objeto llamado @work_profile que tiene muchos atributos, principalmente valores de casilla de verificación booleanos.

Editar: Veo que puedo usar @work_profile.attributes. Cualquier ayuda para formatear el hash en algo más fácil de usar sería genial.

Respuesta

54

El método ActiveRecord::Base.attributes() devuelve un hash de todos los atributos. Puede usar eso para recorrer todos los atributos.

@work_profile.attributes.each do |attr_name, attr_value| 
    ... 
end 

En una vista, esto daría:

<% @work_profile.attributes.each do |attr_name, attr_value| %> 
    <div class="work_profile_attribute"> 
    <%= attr_name %>: <%= attr_value %> 
    </div> 
<% end %> 
+0

Gran eso es lo que estaba buscando. ¿Cómo se puede formatear la salida del hash en la vista? –

+0

Gracias. –

+0

No estoy del todo seguro de lo que quiere decir con el resultado del hash, pero agregué un fragmento de código que muestra cómo podría recorrer los atributos en una vista. Solo un ejemplo ... – mbreining