Я использую Rails 2.3.5, и у меня есть модель, назовем ее Post.Я использовал именованные области, чтобы применять различные виды сортировки к Post.Например, в модели Post у меня есть возможность ранжировать сообщения по их оценкам:
named_scope :order_by_acception_rate_desc,
Proc.new { |limit| { :limit => limit, :order => "acception_rate desc" } }
В контроллере сообщений у меня есть:
def best
@best_posts = Post.order_by_acception_rate_desc(10)
end
В представлении я просто отображаю эту коллекцию@best_posts:
<%= render :partial => "post", :collection => @best_posts
В настоящее время мое приложение работает так, но на самом деле мне не нужно, чтобы метод Controller был лучшим в Controller, и я мог бы переместить его в Model Post, выполнив следующее:
def self.best
self.order_by_acception_rate_desc(10)
end
и затем в представлении я бы отобразил коллекцию следующим образом:
<%= render :partial => "post", :collection => Post.best
Я не знаю, какой подход лучше, но используя методы ранжирования в Модели, я мог бы избежатьсоздать маршруты для каждого из методов ранжирования.Какой подход лучше, есть ли лучший подход, чем эти?