Rails错误从Heroku上的Postgres查询数据

时间:2019-04-12 12:40:16

标签: ruby-on-rails

我刚刚使用Postgres在Heroku上部署了我的第一个应用程序,并且在向模型查询数据时遇到错误。当应用通过控制器查询本地MySQL数据库时,它已经可以正常使用:

SELECT "locations".* 
FROM "locations" 
WHERE (id LIKE '%1%' OR user_id LIKE '%1%')):

 18:   </thead>
 19: 
 20:   <tbody>
 21:     <% @locations.each do |location| %>
 22:       <tr>
 23:         <td><%= location.id %></td>
 24:         <td><%= location.user.name %></td>
 FATAL -- : [e8968d66-5740-4005-9236-fd3e4cc61542] app/views/locations/index.html.erb:21:in `_app_views_locations_index_html_erb___341067609742207438_69941629868780'

这是执行搜索的方法:

     def index
    if  params[:search].present?
      @search = params[:search]
      @locations = Location.where('id LIKE ? OR user_id LIKE ?', "%#{@search}%", "%#{@search}%") 
    else 
       @locations = Location.all
    end
  end

1 个答案:

答案 0 :(得分:1)

这里有些混乱。您在标题中提到了Postgres on Heroku而在描述中提到了MySql

我假设您正在使用Postgres编写以下代码。

如果您使用的是MySql,请在给定的代码中使用LIKE

@locations = Location.where("id ILIKE :search OR user_id ILIKE :search", search: "%#{@search}%")

如果您觉得这有帮助,请告诉我!!