在每个循环中显示第一个结果

时间:2016-03-04 13:31:01

标签: ruby-on-rails

所以我现在在rails中有这个循环

<% @gresults.each do |gr| %>

我如何才能获得第一个回应呢?

我只是想在其他地方使用它,有一个选项,它将是那里唯一的。

由于

3 个答案:

答案 0 :(得分:1)

假设你的代码中有以下循环:

<% @gresults.each do |gr| %>
    <h1><%= gr.name %></h1>
    <p><%= gr.description %></p>
<% end %>

......或者你在每个“gresult”上执行一系列操作的任何类似事件。以下代码将完全按照您的要求执行:

<h1><%= @gresults.first.name %></h1>
<p><%= @gresults.first.description %></p>

然而,这引出了一个问题;你在@gresults数组中与其他gresults一起做任何吗?如果没有,那么你不应该收集整个结果。想象一下,您的控制器目前看起来像这样:

def index
    @gresults = GResult.all
end

如果您改为将此代码更改为此代码,则不会浪费通过所有gresults的资源,而只需要处理第一个(您尝试显示的那个):

def index
    @gresult = GResult.first
end

然后你的观点会是这样的:

<h1><%= @gresult.name %></h1>
<p><%= @gresult.description %></p>

答案 1 :(得分:0)

使用此代码:

<%= @gresults.first %>

通过@gresults.first,您可以获得一个活动记录对象。如果您想获取列的值,那么您可以执行此操作@gresults.first.Column_name。例如@gresults.first.id

答案 2 :(得分:0)

<%= @gresults.first %>

(在ERB中需要=。)