【发布时间】:2011-05-22 02:29:02
【问题描述】:
是否可以在 Rails 中循环遍历对象的属性?我有一个对象,而不是编写视图中的每个属性,我想在视图中输出它们中的每一个,因为有很多。
我有一个名为@work_profile 的对象,它有很多属性,主要是布尔复选框值。
编辑:我知道我可以使用@work_profile.attributes。将哈希格式化为更用户友好的任何帮助都会很棒。
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3
是否可以在 Rails 中循环遍历对象的属性?我有一个对象,而不是编写视图中的每个属性,我想在视图中输出它们中的每一个,因为有很多。
我有一个名为@work_profile 的对象,它有很多属性,主要是布尔复选框值。
编辑:我知道我可以使用@work_profile.attributes。将哈希格式化为更用户友好的任何帮助都会很棒。
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3
ActiveRecord::Base.attributes() 方法返回所有属性的哈希值。您可以使用它来循环所有属性。
@work_profile.attributes.each do |attr_name, attr_value|
...
end
在一个视图中,这将给出:
<% @work_profile.attributes.each do |attr_name, attr_value| %>
<div class="work_profile_attribute">
<%= attr_name %>: <%= attr_value %>
</div>
<% end %>
【讨论】:
attr_name.humanize。这会将诸如“have_a_car”之类的字符串转换为“Have a car”。请注意,Rails 提供了 String#humanize 方法,因此这在 Rails 环境之外无法工作。