2016-03-04 65 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>