0

私はレールで本当に新しいですが、私は疑問に思っていました。

クエリを実行するときにレール内のモデル列名にアクセスするためのベストプラクティスは何ですか?

「タイトル」という列で降順で並べ替えたいようです。どのようにすればよいですか(ベストプラクティス)?

MyModel.order(:title.to_s.concat " DESC").all 

MyModel.order("title DESC").all

または、他の何か?

私の経験から、ハードコードされた文字列を使用することは、主にコードがリファクタリングできなくなるため、このような問題で常に間違ったアプローチを証明します。

私のIDE(私はRubyMineを使用しています)では、列シンボルの優れたコード完了が表示されているので、この方法で使用を追跡する方が簡単だと思いますか?

ありがとう。

4

1 に答える 1

1

私の意見MyModel.order("title DESC").allでは、ここでより良い選択です。他の選択肢の読みやすさと複雑さは悪いです。パフォーマンスは考慮されないかもしれませんが、このセクションでは、他の選択肢も悪いスコアを出します。

それとは別に、IDE のインテリセンス機能を使ってコードを書くべきではありません。コードは、すべての IDE でナビゲート可能で読み取り可能でなければなりません。私は Vim を使用していますが、文字列をシンボルと同じように完成させるので、ここでは違いはありません。

編集:

注文がASCの場合、MyModel.order(:title).allどちらがより確実に優れているかを使用できますMyModel.order("title").all

于 2012-07-29T07:23:22.680 に答える