【发布时间】:2020-03-29 09:29:36
【问题描述】:
我对 jQuery DataTables 的 ajax 函数和 JSON 响应有一个小问题,我进入了我的 Rails 6 应用程序。我成功访问了路由并返回了 JSON 响应。
我想要实现的目标:我每天统计具有特定属性的记录数,所以我得到一个整数值。我的问题是:如何将此值传递给 jQuery DataTables 以显示在列中?
我的控制器操作:
def showDailyOrders
render json:
{ count1: OrderCard.where(day: Date.today).where(dish_type: 0).count }
end
我的 jQuery 代码初始化 DataTable 和 AJAX 请求:
$("#todaysOrdersTable").DataTable({
ajax: '/showDailyOrders',
dataSrc: '',
columns: [
{ title: 'Vollkost', data: 'count1' }
]
});
我得到的 JSON 响应如下所示:
"{\"count1\":1}"
如何将值(在本例中为 1)传递给 jQuery 函数?它只是告诉我“正在加载”,但没有任何反应。如果我使用像 OrderCard.all 这样的另一个查询作为响应并使用键(例如“id”)作为函数中的数据,它会显示值。
感谢您的帮助!
【问题讨论】:
-
最简单的方法是使用这个 gem:Ajax-DataTables-Rails gem,这里是:github.com/jbox-web/ajax-datatables-rails,它将帮助您划分所有数据表。通常,您将为表创建一个数据表类并将 view.context 提供给它,例如: format.json { render json: DailyOrderDatatable.new(params) }
-
是的,我知道有一颗宝石,但我宁愿使用“普通”库。我只需要知道我如何获得价值。
-
然后关注这个 railscast。在没有宝石的情况下详细解释所有内容:railscasts.com/episodes/340-datatables 基本上,您将创建一个类来处理返回格式正确的 json 响应,它实际上只是一个遵循表上列结构的数组。
-
这就是为什么我问如何得到这个格式正确的 JSON 响应:)
标签: jquery ruby-on-rails json ruby datatables