プロジェクトは次の場所にあります
http://code-dojo.herokuapp.com/
と
https://github.com/TylerSangster/Code-Dojo
次のモデルのリソース レビュー サイトがあります。
class Resource < ActiveRecord::Base
has_many :reviews
class Review < ActiveRecord::Base
belongs_to :resource
名前、作成日時、コストによるリソースの並べ替えを追加しました。また、最も評価の高いリソースで並べ替えたいと思います。
review.score による並べ替えを作成するにはどうすればよいですか?
EDIT リソース コントローラー
def index
@resources = Resource.where(status: true).includes([:providers, :subjects, :formats, :reviews])
@resources = @resources.tagged_with(params[:tag]) if params[:tag]
@resources = @resources.order(sort_column + " " + sort_direction)
@resources = @resources.paginate(:page => params[:page], :per_page => 10)
respond_with @resources
end
プライベート メソッド
def sort_column
Resource.column_names.include?(params[:sort]) ? params[:sort] : "name"
end
def sort_direction
%w[asc desc].include?(params[:direction]) ? params[:direction] : "asc"
end
アプリケーション.rb
def sortable(column, title = nil)
title ||= column.titleize
css_class = column == sort_column ? "current #{sort_direction}" : nil
direction = column == sort_column && sort_direction == "asc" ? "desc" : "asc"
link_to title, {:sort => column, :direction => direction}, {:class => css_class}
end
index.html.erb
<li><div class="btn btn-default"><%= sortable "created_at", "Most Recent" %></div></li>
<li><%= link_to "Highest Rated", resources_path, class:"btn btn-default" %></li>
<li><div class="btn btn-default"><%= sortable "cost" %></div></li>