2009-11-29 3 views
1

Хорошо. У меня есть модель ИзображениеКак показывать фотографии по рейтингу с помощью Ruby on Rails?

class Picture < ActiveRecord::Base 
    has_one :rating 
    has_many :comments 
end 

И, конечно Рейтинг модели

class Rating < ActiveRecord::Base 
    belongs_to :picture 
end 

Я сделал рейтинговую систему самостоятельно. Итак, теперь на главной странице мне нужно отобразить все фотографии по рейтингу. Пожалуйста, вы можете показать мне, как это сделать. Я не знаю, что будет в index.html.erb основного контроллера.

ответ

1

Если рейтинг имеет поле целое "значение", вы можете сделать это:

class Picture < ActiveRecord::Base 
    has_one :rating 

    named_scope :by_rating, { :joins => :rating, :order => 'ratings.value DESC' } 
end 

Теперь в контроллере вы можете использовать это:

@pictures_top10 = Picture.by_rating.all :limit => 10 

По мнению:

<% @pictures_top10.each do |picture| %> 
    <%= image_tag(picture.url) %> 
<% end %> 
+0

Tnanks, но мне нужно получить поля из таблицы. Рейтинги в результате! – Anton

+0

В том числе и столбцы с рейтингом: named_scope: by_rating, {: joins =>: rating,: order => 'ratings.value DESC',: select => 'pictures. *, Ratings. *'} –

Смежные вопросы