Правильный синтаксис поиска для: first,: order в Rails 3? - PullRequest
2 голосов
/ 13 января 2011

В настоящее время я использую следующее для получения названия города:

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

Каков наилучший способ сделать это, назвать области и т. Д. Я просто чувствую, что это хороший мусор и плохая практика.

Спасибо!

1 Ответ

6 голосов
/ 13 января 2011

Если 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])

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...