Отсутствует предложение FROM в глобальном поиске в DataTables
Я использую datatables
gem для отображения таблицы, в которую включены две связанные таблицы. В результате он вытягивает и отображает столбцы из трех разных таблиц.
Это работает нормально, и я даже могу отсортировать по необходимым столбцам. К сожалению, глобальная функция поиска не работает. Похоже, оператор SQL формируется неправильно. Он не находит таблицу для выполнения предложения where.
Ошибка:
PG:: UndefinedTable: ERROR: отсутствует запись предложения FROM для таблицы "items" ЛИНИЯ 1: SELECT COUNT () FROM "item_stores" WHERE ((CAST("items"."De... ^: SELECT COUNT () FROM") item_stores "WHERE ((CAST (" items "." описание " AS VARCHAR) ILIKE"%b%' OR CAST("stores"."store_name" AS VARCHAR) ILIKE "%b%'))
Модель, которую я использую, находится между двумя другими, с отношением "многие к 1" к каждому: Items(1)-(M)ItemStores(M)-(1)Stores.
Мой запрос необработанных данных:
def get_raw_records
# insert query here
ItemStore.includes([ :item, :store ]).all
end
index.json.builder
json.item_stores @item_stores do |item_store|
json.id item_stores.id
json.item.image_path item_store.item.image_path
json.store_id item_stores.store_id
json.price item_stores.price
json.items item_store.items do |item|
json.(item, :description, :price, :image_path)
end
json.stores item_store.stores do |store|
json.(store, :store_name)
end
json.url item_stores_url(i, format: :json)
end
Я не могу понять, что я могу сделать, чтобы исправить базовый SQL, присоединенный к глобальному поиску... любая помощь будет принята с благодарностью. Благодарю.
1 ответ
Ответ найден!
Запрос в get_raw_records должен выглядеть так:
ItemStore.includes (: item,: store).references (: item,: store)