循环遍历Ruby on Rails中的Object属性

Rob*_*t B 37 ruby-on-rails ruby-on-rails-3

是否可以在Rails中循环对象的属性?我有一个对象而不是编码视图中的每个属性,我想在视图中输出每个属性,因为有很多.

我有一个名为的对象@work_profile,它有许多属性,主要是布尔复选框值.

编辑:我看到我可以使用@work_profile.attributes.任何帮助将哈希格式化为更加用户友好的东西都会很棒.

mbr*_*ing 65

ActiveRecord的:: Base.attributes()方法返回的所有属性的哈希值.您可以使用它来遍历所有属性.

@work_profile.attributes.each do |attr_name, attr_value|
  ...
end
Run Code Online (Sandbox Code Playgroud)

在一种观点中,这将给出:

<% @work_profile.attributes.each do |attr_name, attr_value| %>
  <div class="work_profile_attribute">
    <%= attr_name %>: <%= attr_value %>
  </div>
<% end %>
Run Code Online (Sandbox Code Playgroud)

  • 试试`attr_name.humanize`.这会将诸如"have_a_car"之类的字符串转换为"有车".请注意,String#humanize方法由Rails提供,因此这不适用于Rails环境之外. (4认同)