0

我有一个 Rails 应用程序,其中大多数操作都响应 json。

尽管有方法调用,我是否可以关闭任何“开关”以防止所有控制器响应 json respond_to,或者我仍然必须在每个操作中手动禁用它(这看起来很奇怪)。

4

2 回答 2

4

我有一个建议,虽然我害怕有点 hacky :)

class < ApplicationController
  before_filter :disable_json

  def disable_json
    if request.format =~ /json/
      //do something you like, redirect_to or reply with message
    end
  end

before_filter 将在任何特定控制器的方法之前触发。

json 标头通常是“application/json”

对于request,你可以在这里阅读更多:http: //guides.rubyonrails.org/action_controller_overview.html#the-request-object

于 2013-05-13T02:56:32.797 回答
4

你也可以在 routes.rb 中使用约束:

# Only allow HTML requests for all resources within the block
scope constraints: {format: :html} do
  resources :posts
  resources :comments
  get "/profile", to: "users#profile"
end
于 2016-09-23T22:04:40.343 回答