Rails 3 - 如何处理从数据库获取的数据

时间:2011-08-16 00:10:36

标签: ruby-on-rails-3 model syntax-error each

我从数据库加载唯一的一行。数据存储在变量(例如)@data中。 在视图中,如果我想显示从数据库获取的值,我必须执行以下操作:

    <% @data.each do |d| %>
        <%=d.name %>
    <%end%>

我想问你 - 存在更好的方法吗?我认为使用循环的唯一一行有点傻......我尝试了像

这样的东西
<%= @data.name %>
OR
<%= @data.each.name %>

但是在这两种情况下我都收到了关于语法错误的错误消息......

所以我的问题是 - 可以更优雅地获得显示数据吗?

编辑:我的查询: @data = Car.includes(:轮胎).where(“param1 =?”,params [:param1])

2 个答案:

答案 0 :(得分:1)

如果您加载了多个模型(行),则循环是显示每个值的自然构造。如果你真的是单行,你可以使用Ruby的一些列表理解:

<%= @data.map(&:name).join(" ") -%>

答案 1 :(得分:1)

我认为您正在加载.all而不是.first

在你的控制器中,

@data = Data.where(:some => 'condition').first

@data = Data.find(params[:id])