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パーシャルを作成して、テーブルの1つの行をレンダリングできます。

# 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 に答える