Rails - 在视图中显示所有字段的简便方法

Mic*_*ael 11 ruby-on-rails view

好吧,我确定我在这里遗漏了一些东西,但请原谅我,我是Rails的新手.

Rails中是否有某种方法可以显示对象的所有字段而不是指定每个字段?

在我的show.html模板而不是去

<p>Name: <%=h @user.full_name %></p>
<p>Email: <%=h @user.email %></p>
Run Code Online (Sandbox Code Playgroud)

我只想要一个oneliner来做这个,而不必输入我所拥有的15个左右的字段.它是一个管理页面,如果显示所有字段(id,created_at等),它很好.如果这是PHP,使用foreach需要大约5秒钟,但我用Google搜索(显然是错误的)一小时没有运气.

谢谢!

Mat*_*att 36

就像是

<% for attribute in @user.attributes.keys %>
  <p><%= attribute.humanize %> <%= @user.attributes[attribute].to_s %></p>
<% end %>
Run Code Online (Sandbox Code Playgroud)

可以做到这一点.

马特

  • 爱它!我最终使用:`<%for name in ['name','age','etc']%>`仅显示我想要显示的字段. (2认同)

Luk*_*kal 6

我想您想显示定义为 ActiveRecord 模型的数据库表中一行的所有属性。您可以使用类方法column_names(每个 ActiveRecord 模型都有它),它返回数组中表列的名称。

<%= User.column_names.collect { |col_name| "#{col_name.capitalize}: <p>#{@user[col_name]}</p>" }.join("\n") %>
Run Code Online (Sandbox Code Playgroud)