web-dev-qa-db-fra.com

Boucle sur les attributs d'objet dans Ruby on Rails

Est-il possible de boucler sur les attributs d'un objet dans Rails? J'ai un objet et plutôt que de coder chaque attribut dans la vue, je veux afficher chacun d'eux dans la vue car il y en a plusieurs.

J'ai un objet appelé @work_profile qui possède de nombreux attributs, principalement des valeurs de case à cocher booléennes.

Edit: je vois que je peux utiliser @work_profile.attributes. Toute aide sur le formatage du hachage en quelque chose de plus convivial serait formidable.

37
Robert B

La méthode ActiveRecord :: Base.attributes () renvoie un hachage de tous les attributs. Vous pouvez l'utiliser pour parcourir tous les attributs.

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

Selon un avis, cela donnerait:

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