0
私はrailsメソッドを使って、投票(acts_as_votable)に基づいてブログをソートします。レールの名前付きスコープでコードの行数を減らす
方法は、ラインのこれらの多くの数を減らすために、いくつかnamedscopeにこれを変更する方法
# @allblogs will be some filtered blogs array
@fetch = []
@most_effective_votes = []
for blog in @allblogs
@most_effective_votes << [blog.id,blog.votes_for]
end
@most_effective_votes = @most_effective_votes.sort{|a,b| a[1]<=> b[1]}.Reverse
for mev in @most_effective_votes
@fetch << blog.Find(mev[0])
end
@allblogs = @fetch.Paginate(:per_page => 10,:page=>params[:page])
です。 いくつか提案してください。
いいえ、Blog.allではなく、allblogsのみを使用する必要があります。すべてのブログは他の関数からの戻り値です。私は引数エラーをスローしていないスコープで試しました。私はallblogs.findで試してみました(:all、:include => ["votes"]、conditions => ["votes.voteable_type = 'ブログ'、votes.voteable_id = blogs.idとvote =? :group => ["votes.voteable_id"]、:order => ["count(votes.id)desc"])。サーバー側で引数のエラーが発生しました。なぜそうなのか ? – useranon
配列にスコープを適用することはできません。あなたは、すべてのブログを返す機能を私に見せてもらえますか? – e3matheus