我刚刚使用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
答案 0 :(得分:1)
这里有些混乱。您在标题中提到了Postgres on Heroku
而在描述中提到了MySql
。
我假设您正在使用Postgres
编写以下代码。
如果您使用的是MySql
,请在给定的代码中使用LIKE
。
@locations = Location.where("id ILIKE :search OR user_id ILIKE :search", search: "%#{@search}%")
如果您觉得这有帮助,请告诉我!!