2011-01-13 4 views
2

私は現在、町の名取得するには、以下を使用しています:私はちょうどこれがうまくゴミと悪い習慣であると感じ何これを行うための最善の方法だろう、という名前のスコープなど正しい検索構文は次のとおりです。最初は:Rails 3の注文ですか?

place = Town.find(:first, :conditions => ["name = ?", params[:place_post]]) 
place ||= Town.find(:first, :order => "damlev(`towns`.`name`, '" + params[:place_post] + "')") 

を。

ありがとうございます!

答えて

6

のparamsの場合は、[:place_post]:

place = Town.find(:first, :conditions => ["name = ?", params[:place_post]], :order => "name [ASC|DESC]")

使用ASCまたはDESCのどちらかの町の名前です。 AREL構文と

更新

place = Town.where(:name => params[:place_post]).order("name [ASC|DESC]").first()

か:

place = Town.order("name [ASC|DESC]").find_by_name(params[:place_post])

demlev機能付きアイデアですが、これは動作する可能性を正確に知っていない:

place = Town.order("demlev(name, #{quoted_place_post]}) [ASC|DESC]").find_by_name(params[:place_post])

quoted_place_postはTown.quote_value(params [:place_post])

+1

ありがとうございました。これは正しい方法ですか?私はちょうどRails 3のいくつかの例でTown.order()。first()を使用しています。明確にするために:[place_post]は町の名前です:) –

+0

どちらも同等ですメソッド連鎖を持つものはARelを使用しています。どうやら、最初の構文はRails 3.1では廃止されます。 – aurelian

+0

すごく感謝しました。私は何かがあることを知っていました。しかし、私はlevenshtein関数にparamsを含める方法と名前付きスコープであるべきかどうか疑問に思っているので、私の質問に完全に答えていませんか?また、私はRailsを初めて使っているだけでなく、すべての適切な習慣を習得しようとしていて、間もなく廃止される予定のものではないと言っているので、ARelについて説明してくれてありがとう。 –

関連する問題