Отсутствует предложение 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)

Другие вопросы по тегам