tho*_*edb 2 mysql postgresql ruby-on-rails heroku
我将如何重写此rails查询以在Heroku(Portegres)上运行
@students = Student.find(:all,
:conditions =>["(concat(first_name, ' ', last_name) LIKE ?) OR
(concat(first_name, ' ', middle_names, ' ', last_name) LIKE ?)",
"%#{params[:search]}%", "%#{params[:search]}%"]
)
Run Code Online (Sandbox Code Playgroud)
也遇到了这个问题.Postgres与LIKE运算符区分大小写,所以这就是我在项目中所做的.另外,我不喜欢在本地运行postgres,所以我在开发中运行LIKE(mysql/sqlite)和生产中的ILIKE(postgres).ILIKE"不区分大小写"
/config/environment.rb
DATABASE_OPERATOR = {
:like_operator => "LIKE"
}
Run Code Online (Sandbox Code Playgroud)
/config/environments/production.rb
DATABASE_OPERATOR = {
:like_operator => 'ILIKE' #postgres awfulness
}
Run Code Online (Sandbox Code Playgroud)
询问
@students = Student.find(:all, :conditions => ['(concat(first_name, " ", last_name) #{DATABASE_OPERATOR[:like_operator]} ?) OR (concat(first_name, " ", middle_names, " ", last_name) #{DATABASE_OPERATOR[:like_operator]} ?)', "%#{params[:search]}%", "%#{params[:search]}%"])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
606 次 |
| 最近记录: |