1

我有一个数据表,我在其中遍历每个用户属性,并将其显示在一个表中。这似乎是很多重复,即使单词不一样,每个属性的过程都是一样的。有没有办法自动制作一个表头attribute.titleize和数据单元格的表格行user.attribute

%table
  %tr
    %th First Name
    %td= @user.first_name
  %tr
    %th Middle Name
    %td= @user.middle_name
  %tr
    %th Last Name
    %td= @user.last_name
4

2 回答 2

2

您可以进行_attribute局部渲染以呈现表格的单行:

# app/views/users/_attribute.html.haml
%tr
  %th= attribute.first.titleize
  %td= attribute.second

# app/views/users/show.html.haml
%table
  %tbody= render partial: 'attribute', collection: @user.attributes.to_a

如果您不想渲染 的每个属性User,请在模型上创建一个方法,该方法返回您想要的属性并调用它而不是@user.attributes

# app/models/user.rb
class User
  def public_attributes
    attributes.slice('first_name', 'middle_name', 'last_name')
  end
end
于 2012-11-06T19:55:13.650 回答
0

也许你可以使用部分。

http://guides.rubyonrails.org/layouts_and_rendering.html#using-partials

于 2012-11-06T19:51:13.553 回答