2016-03-04 43 views
-1

所以我有这样的循环在轨显示在第一个结果每个循环

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

我将如何去获取只是这第一个响应的那一刻?

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

感谢

+1

如果要求显示结果只有一个,那你为什么不找只有一个结果并显示它?例如'@ gresults.first' –

回答

0

使用此代码:

<%= @gresults.first %> 

通过@gresults.first object.If要获取列的值,那么你可以这样做@gresults.first.Column_name你可以得到一个积极的记录。例如@gresults.first.id

0
<%= @gresults.first %> 

(该=需要看到它在ERB)

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>