Rails帮助将随机mysql finder重写为PostgreSQL

时间:2011-03-20 17:25:27

标签: ruby-on-rails ruby-on-rails-3

我的控制器:

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?

1 个答案:

答案 0 :(得分:3)

在MySQL中,通过调用RAND()来使用random。

在PostreSQL中,通过调用RANDOM()来使用random。

所以它会是:

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

另一方面,您不应该在视图中使用ActiveRecord。我读到了MVC的概念。