Я пытаюсь отработать мою первую строку поиска, но я начинаю путаться между тестированием моей герои-развертывания против моего локального хоста.
У меня он работает как на локальном хосте, но когда он развернут для производства, он больше не работает, это моя ошибка из журналов Heroku:
ActionView::Template::Error (PG::UndefinedFunction: ERROR: operator does not exist: integer ~~* unknown
Форма поиска:
<%= form_tag(tools_path, :method => "get", id: "search-form") do %>
<%= text_field_tag :search, params[:search], placeholder: "Search Tools" %>
<%= submit_tag "Search", :name => nil %>
<% end %>
My Display должен перенаправить на индекс указанного поискового запроса
и мой контроллер выглядит так:
def index
@tools = Tool.paginate(params[:page], :per_page => 50)
if params[:search]
@tools = Tool.search(params[:search]).paginate(page: params[:page], per_page: 50)
else
@tools = Tool.paginate(params[:page], :per_page => 50)
end
end
Я провел некоторое исследование, но все, что я действительно придумал, это то, что PG может не иметь возможности поиска целых чисел, что объясняет, почему в разработке с sqlite это работает, но я не понимаю, почему это сломается панель поиска целиком, даже если мой запрос был простой строкой.
Также я знаю, что использование двух разных баз данных обычно не то, что вы бы сделали. Изначально это приложение должно было базироваться на локальном сервере, но пользователь решил, что идея ему не понравилась после того, как база данных уже была построена ...
ПРИМЕЧАНИЕ Я забыл скопировать свою модель:
class Tool < ApplicationRecord
def self.search(search)
where("prefix ILIKE ? OR basic ILIKE ? OR global ILIKE ? OR suffix ILIKE ?", "%#{search}%", "%#{search}%", "%#{search}%", "%#{search}%")
end
end