2011-04-04 66 views
3

我需要做下面的查詢:ORDER BY和限制

SELECT * FROM "specimens" ORDER BY distribution_sheet_id DESC LIMIT 10 

,我已經把:

<%= Specimen.last(:order => :distribution_sheet_id).id %> 

我喜歡輸出「極限10」不限制1.我想它了。去年,但我可以表達它在其他的方式來限制10

感謝

回答

1
<ul> 
<% Specimen.find(:all, :order => 'distribution_sheet_id desc', :limit => 10).each do |specimen| %> 
    <li><%= specimen.id %></li> 
<% end %> 
</ul> 
+0

即時得到未定義的方法'秩序」爲#<類別:0xc9716a0> – Mike 2011-04-04 11:51:46

+0

你on Rails的<3.0。而是使用:'Specimen.find(:all,:order =>'distribution_sheet_id',:limit => 10)' – 2011-04-04 11:56:41

+0

其打印出#,#,#,#,#,#,#,#,#,# – Mike 2011-04-04 11:59:04

5

假設你正在使用Rails 3

<%= Specimen.limit(10).order("distribution_sheet_id").all %> 

請注意,如果你限制超過1分的記錄,你不能在結束通話#id因爲結果是一個數組。

要獲得所有的ID

<%= Specimen.limit(10).order("distribution_sheet_id").map(&:id) %> 

對於Rails的2.3使用舊的基於散列的條件。

<%= Specimen.all(:order => "distribution_sheet_id", :limit => 10) %> 

和同樣適用於ID

<%= Specimen.all(:order => "distribution_sheet_id", :limit => 10).map(&:id) %> 

這裏我使用的方法#to_sentence加入所有的ID。根據您的使用情況調整代碼。

<%= Specimen.all(:order => "distribution_sheet_id", :limit => 10).map(&:id).to_sentence %> 
+0

不使用導軌2.3 – Mike 2011-04-04 11:48:58

+0

即時通訊# Mike 2011-04-04 11:51:06

+0

沒有進一步的建議嗎? – Mike 2011-04-04 11:55:10