我有一个rails应用程序,其中大多数操作都响应json。
是否有任何“开关”我可以关闭以防止所有控制器响应json尽管respond_to
方法调用,或者我仍然必须在每个操作中手动禁用它(这看起来很奇怪)。
答案 0 :(得分:3)
我有一个建议,虽然我有点害怕:)
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
答案 1 :(得分:1)
你也可以在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