正确查找语法:首先,:Rails 3中的顺序?

Har*_*and 2 mysql activerecord find ruby-on-rails-3

我目前正在使用以下内容来检索城镇名称:

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

什么是最好的方法,命名范围等我只是觉得这是很好的垃圾和糟糕的做法.

谢谢!

aur*_*ian 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])