gpt4 book ai didi

ruby-on-rails - Rails 中 jqGrid 数据的自定义响应程序

转载 作者:行者123 更新时间:2023-12-04 03:53:38 28 4
gpt4 key购买 nike

我以为这很容易。定义一个“to_grid”响应程序模块,将其包含在适当的位置使用,让 jqgrid 使用像“/client.grid”这样的 url 进行交互,并能够与 html 响应程序共享休息操作。我查看了精选的 jqGrid gem,但没有看到最近添加的代码、rails 3.1 兼容、gem 而非插件以及完整的 REST 访问的最佳位置。

但显然我对 Responders 的理解不够好,或者这是一个完全不合适的策略选择。

jqGrid是一个基于 JQuery 的数据网格,它使用 JSON 与服务器通信。我的策略是这样的......

#Gemfile
gem 'kaminari'
gem 'responder'
gem 'inherited_resources'

#config/initializers/mime_types.rb
Mime::Type.register "application/json", :grid

#lib/application_responder.rb
require 'grid_responder'
class ApplicationResponder < ActionController::Responder
include Responders::GridResponder
end

#lib/grid_responder.rb
module Responders
module GridResponder
extend ActiveSupport::Concern
module InstanceMethods
def to_grid
#Only pagination included at this time.
if get? && resource.is_a?(ActiveRecord::Relation)
total = resource.klass.count
page, rows = controller.params[:page], controller.params[:rows]
paginated = resource.page(page).per(rows)
output = { total: (total / rows) + 1,
page: page,
records: total,
rows: resource }
render json: output.to_json
end
end
end
end
end

#app/controllers/application_controller.rb
require "application_responder"
class ApplicationController < ActionController::Base
self.responder = ApplicationResponder
respond_to :html, :json, :grid
end

#app/controllers/client_controller.rb
class ClientController < InheritedResources::Base
end

但是调用/client.grid 提示找不到模板。我真的没想到需要一个模板。我开始怀疑这种策略是否值得追求。我有大约十几个模型需要网格化,在 12 个不同的 Controller 中做同样的事情似乎不是很枯燥。

问题:这种策略是否值得追求,或者是否有更简单或更惯用的策略可以尝试。

奖励问题:指向我可以阅读并用作模型的工作 Rest/Responder 代码的指针。

谢谢!

最佳答案

这里有很多潜在的问题:

我认为这意味着您的条件返回 false 并且未调用渲染,因此它正在寻找默认渲染的 View 模板。您是否检查以确保 resource.is_a?(ActiveRecord::Relation) 为您的用例返回 true? Inherited Resources 不返回资源的 ActiveRecord::Relation - 它应该返回一个 ActiveRecord::Base 实例。

此外,如果您不需要,lib 是否在您的自动加载路径中

require Rails.root.join("lib/application_responder")

此外,您能否确认正在调用 to_grid 方法?

我推荐使用 pry :https://github.com/pry/pry反射(reflection)这里发生的事情。

关于ruby-on-rails - Rails 中 jqGrid 数据的自定义响应程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9072043/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com