Rails:默认情况下呈现相同的JSON



我正在开发一个只返回JSON的API。

所有异常/错误都由around_filter捕获,并从中呈现适当的JSON响应。

由于我想从我的操作返回的只是一个状态,并且所有错误都由around_filter处理,所以我所有操作的最后一行现在看起来像

render :json => {:message => {:status => :ok}}

有没有一种方法可以告诉rails在默认情况下始终渲染该行,这样我就不必将其添加到所有274628操作中?

删除所有模板和呈现语句。

# app/controllers/application_controller.rb
class ApplicationController < ActionController::Base
  rescue_from ActionView::MissingTemplate do |exception|
    # This will not work for partials
    render :json => {:message => {:status => :ok}}
  end
end
# some method in the controller
class PostController < ApplicationController
  respond_to :json, :html, :xml
  def index
    puts "index"
  end
end

就我个人而言,我不会这么做。如果你真的有274628个操作,我会把你的应用程序分成更小的服务(我知道你在开玩笑):)。我只是喜欢显式地渲染,即使它更像是打字。此外,覆盖默认值会使您的应用程序更难解释,代码也不那么清晰。

我个人很喜欢葡萄API宝石的默认渲染设计。您可以在rails应用程序中安装Grape API。也许可以考虑一个更清洁的解决方案。

相关内容

  • 没有找到相关文章

最新更新