我从数据库加载唯一的一行。数据存储在变量(例如)@data中。 在视图中,如果我想显示从数据库获取的值,我必须执行以下操作:
<% @data.each do |d| %>
<%=d.name %>
<%end%>
我想问你 - 存在更好的方法吗?我认为使用循环的唯一一行有点傻......我尝试了像
这样的东西<%= @data.name %>
OR
<%= @data.each.name %>
但是在这两种情况下我都收到了关于语法错误的错误消息......
所以我的问题是 - 可以更优雅地获得显示数据吗?
编辑:我的查询: @data = Car.includes(:轮胎).where(“param1 =?”,params [:param1])
答案 0 :(得分:1)
如果您加载了多个模型(行),则循环是显示每个值的自然构造。如果你真的是单行,你可以使用Ruby的一些列表理解:
<%= @data.map(&:name).join(" ") -%>
答案 1 :(得分:1)
我认为您正在加载.all
而不是.first
。
在你的控制器中,
@data = Data.where(:some => 'condition').first
或
@data = Data.find(params[:id])