我有一个数据表,我在其中浏览每个用户属性,并将其显示在表格中。这似乎是很多重复,即使单词不相同,每个属性的过程也是如此。有没有办法自动创建一个标题为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
答案 0 :(得分: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
答案 1 :(得分:0)