2011-03-20 38 views
0

我的控制器:Rails的幫助改寫隨機MySQL的取景器到PostgreSQL

def toppen 
@top = Konkurrancer 
end 

我的觀點:

<ul id="random"> 
<% @top.find(:all, :limit => 5, :order => 'rand()').each do |vind| %> 
<li><%= link_to vind.name.force_encoding("UTF-8"), konkurrance_path(vind.kategori.cached_slug, vind.cached_slug) %></li> 
<% end %> 
</ul> 

如何重寫這個到PostgreSQL?

+0

這只是引號之間的普通SQL查詢的'ORDER BY'部分,因此您可以使用Google來搜索特定於Postgre或MySql的語法。正如@Mike Lewis所指出的那樣,您的觀點中的發現者違反了關注點的分離(即控制者與數據庫交談,意見不應該)。 – 2011-03-20 17:44:19

回答

3

在MySQL中,隨機調用RAND()來使用。

通過調用RANDOM()使用PostreSQL random。

因此,這將是:

<% @top.find(:all, :limit => 5, :order => 'random()').each do |vind| %> 

在另一方面,你不應該在你的觀點使用ActiveRecord。我讀了MVC的概念。