2012-03-10 12 views

答えて

1

をparamsから直接取得すると、最初は.order("#{@sort} DESC")は良い考えではありません。 .order('? DESC', @sort)を使用する方が良いでしょう。

http://guides.rubyonrails.org/security.html#sql-injection

は私が私が正しくあなたの質問を読んでかはわからないが、私はあなたがcreated_atは、他の有効なオプションがratingsratingであるとデフォルトの順序になりたいと仮定しています。

@order = case params[:sort] 
when 'ratings' 
    'ratings DESC' 
when 'rating' 
    'rating DESC' 
else # anything else 
    'created_at DESC' 
end 

@konkurrencer = Konkurrencer.where("id NOT IN(?)", @clicked).order(@order)