ruby on lineの新機能で、Rails 3のパフォーマンスとベストプラクティスに関して(おそらく単純な)質問があります。私はエンキのブログと呼ばれるブログのエンジンを使用しています、と私は、このブログのエンジンを書いた人は以下の技術を使用してタグを選択していることを参照してください。Ruby on Railsモデルの操作
Tag.find(:all).reject {|tag| tag.taggings.empty? }.sort_by {|tag| tag.taggings_count }.reverse
空のタグがあるので、私は「.reject」の目的は何を見ていません記事が作成、更新、または破棄されるたびに削除されます。私はそれについて正しいと思う、これはより良いアプローチですか?
Tag.find(:all, :order => "taggings_count desc")
私はパフォーマンスと可読性を求めています。モデルの結果をドリルダウンする最良の方法は何ですか? ".sort_by"とpassing:orderの間に実際の違いはありますか?
ご回答ありがとうございます。
次のようになりますRailsの3で
を使用していたでしょうか?私が正しいことを覚えていれば、追加のパラメータ( ':order'など)で' find'を使用することは推奨されません。私は 'Tag.order(" taggings_count desc ")'を推奨します:) – PeterWong
はい、私はレール3を使用しています。Tag.order( "taggings_count desc")はTag.find(:all、 order => "taggings_count desc")?暗黙のうちにすべてを選択しますか?その場合、.orderはパラメータ化されたバージョンと同じレベルのパフォーマンスを持ちますか? –
Rails 3.1で廃止予定です。新しいプロジェクトで旧式の構文を使用する理由はありません。私はあなたが好奇心があるならばあなたが[railscast](http://railscasts.com/episodes/202-active-record-queries-in-rails-3)を見て、違いを知ることをお勧めします。 –