使用DataTables全局搜索缺少FROM子句

时间:2015-04-04 14:45:32

标签: ruby-on-rails jquery-datatables-rails

我使用datatables gem来显示包含两个相关表的表。结果,它正在拉入并显示来自三个不同表格的列。

这工作正常,我甚至可以按所需列进行排序。不幸的是,全局搜索功能被打破了。看来SQL语句没有正确形成。它没有找到表格来执行where子句。

错误是:

  

PG :: UndefinedTable:错误:表"项目"缺少FROM子句条目第1行:SELECT COUNT()FROM" item_stores" WHERE((CAST(" items"。" de ... ^:SELECT COUNT()FROM" item_stores" WHERE((CAST(" item"。" description" AS VARCHAR)ILIKE'%b%'或CAST(" store"。" store_name" AS VARCHAR )ILIKE'%b%')

我正在使用的模型位于其他两个模型之间,每个模型有多对一的关系:项目(1) - (M)项目商店(M) - (1)商店。

我的原始数据查询是:

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 个答案:

答案 0 :(得分:4)

找到答案!

get_raw_records中的查询应为:

ItemStore.includes(:item,:store).references(:item,:store)