覆盖渲染:json中没有模型对象Rails 4

时间:2013-11-15 08:56:51

标签: ruby-on-rails ruby json ruby-on-rails-4 render

我需要覆盖“渲染json”但我不需要为模型覆盖它,在模型中我知道我可以打开ActiveRecord :: Base并重写as_json方法。但我的问题是当我有这样的事情时

class TestController < ApplicationController

def index
   render json: { field: 'is a test' }
end

end

我的问题是因为我使用了一个gem,其中一些方法我需要返回“render json”,而这个gem没有为此集中一个方法。我认为在做py的fork并重构这个因为我可以覆盖集中式方法,但首先我想知道是否有可能覆盖渲染。

1 个答案:

答案 0 :(得分:4)

您可以打开ActionController :: Base类并在那里覆盖render方法。但是我不确定这是否是最好的想法,这取决于你遇到的实际问题,而且你没有给我们太多关于这个问题的详细信息,即你​​期望获得什么以及你实际得到了什么。

更新

我可能会像......一样:

class ActionController::Base
  def render *args
    options = args.extract_options!
    if options[:json]
      \\ do whatever you need here
    end
    args << options
    super *args
  end
end