我想在我的rails应用程序中使用datatables,但我想避免自己准备JSON数据,所以我正在寻找一个可以做到这一点的宝石。理想情况下,我会传递一个ActiveRecored Relation和gem生成的JSON,可以被数据表使用,例如:
class ItemsController < ApplicationController
def index
# I fetch data I need (taking into account authorization, search etc.)
@items = Item.find_relevant_items
respond_to do |format|
# gem prepares JSON for datatables
format.json { ItemDatatable.new(@items) }
# ...
end
end
end
我知道有几种宝石可供选择。但是,它们不适合我:jquery-datatables-rails只是JS的包装器,其他似乎已过时或未维护(ajax-datatables-rails,rails_datatables,simple_datatables) 。
你知道任何可以为数据表提供数据的宝石吗?
答案 0 :(得分:2)
Ruby的JSON模块是内置的,只有require 'json'
位于Ruby脚本的顶部才能使其可用。有关详细信息,请参阅“How do I parse JSON with Ruby on Rails?”。
Rails也包含JSON功能。有关使用JSON和Rails的信息,请参阅“Understanding Ruby and Rails: Serializing Ruby objects with JSON”。 Rails是一个快速移动的平台,因此可能有点过时,但它应该让你开始。 “Lightning JSON in Rails”对于生成JSON时要注意的事情是一个很好的阅读。
“JSON implementation for Ruby”也是Ruby和JSON的绝佳参考。
答案 1 :(得分:1)
我发现在rails应用程序中使用数据表的最佳方法是:
jquery-datatables-rails gem以获取所有资产数据表需求
ajax-datatables-rails gem在使用服务器端分页和搜索时获取JSON数据表所需的内容。
还有其他一些宝石可以更容易地生成需要的JSON数据表如果您不想在RailsCast中创建新类的麻烦。你可以找到它们here
答案 2 :(得分:0)
RABL和JBuilder都浮现在脑海中。 它们是json模板处理程序,使用起来非常简单,两者同样强大,可以完全自定义json输出。
他们都有轨道广播
http://railscasts.com/episodes/320-jbuilder
http://railscasts.com/episodes/322-rabl
和网站
https://github.com/rails/jbuilder
https://github.com/nesquena/rabl
两者都得到很好的维护。
否则,datatables-rails gem真的是你的最佳选择
http://railscasts.com/episodes/340-datatables?view=asciicast
更新2
这是你已经看过的宝石
根据railscast,gem在Gemfile中定义
group :assets do
gem 'jquery-datatables-rails', github: 'rweng/jquery-datatables-rails'
gem 'jquery-ui-rails'
end
我强烈建议您观看railscast(http://railscasts.com/episodes/340-datatables?view=asciicast),因为还需要其他配置。