Ruby on rails Rails—在视图中显示所有字段的简单方法

Ruby on rails Rails—在视图中显示所有字段的简单方法,ruby-on-rails,view,Ruby On Rails,View,好的,我肯定我遗漏了一些东西,但请原谅我是Rails新手 Rails中是否有某种方式显示对象的所有字段,而不是指定每个字段 在我的show.html模板中,而不是 <p>Name: <%=h @user.full_name %></p> <p>Email: <%=h @user.email %></p> 名称: 电邮: 我只需要一个oneliner就可以做到这一点,而不必键入我拥有的15个左右字段中的每一个。 这是一个管

好的,我肯定我遗漏了一些东西,但请原谅我是Rails新手

Rails中是否有某种方式显示对象的所有字段,而不是指定每个字段

在我的show.html模板中,而不是

<p>Name: <%=h @user.full_name %></p>
<p>Email: <%=h @user.email %></p>
名称:

电邮:

我只需要一个oneliner就可以做到这一点,而不必键入我拥有的15个左右字段中的每一个。 这是一个管理页面,所以如果所有字段都显示(id、created_at等)就可以了 如果这是PHP,使用foreach大约需要5秒,但我(显然是在错误的东西上)在谷歌上搜索了一个小时,没有运气


谢谢

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

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

类似

<% for attribute in @user.attributes.keys %>
  <p><%= attribute.humanize %> <%= @user.attributes[attribute].to_s %></p>
<% end %>

我能做到


Matt

这是我用来将一些不想显示的属性列入黑名单的代码片段

控制器(user\u controller.rb)

查看(show.html.erb):

<!-- language: ruby --><% for attribute in @user_showlist.keys %> 

  <b><%= attribute.humanize %></b>
  <%= @user.attributes[attribute].to_s %>
<!-- language: ruby --><% end %>
以显示一系列属性。


<%= debug @user %>

显示对象的简单方法。。。这就是我通常使用的

如果您正在使用haml,并且希望循环查看视图中用户对象等的属性:

- for attribute in @user.attributes.keys
  %p
    = attribute.humanize
    = @user.attributes[attribute].to_s

谢谢也正是我想要的。人性化啊!我想我的孩子有时也需要它,我爱它!最后我用:
只显示我想显示的字段。我在谷歌上搜索了一个小时才找到这个。非常感激
@user_showlist = @user.attributes.slice(*keys_whitelist)
<%= debug @user %>
- for attribute in @user.attributes.keys
  %p
    = attribute.humanize
    = @user.attributes[attribute].to_s