Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何在rails中全局阻止json呈现?_Ruby On Rails_Json_Respond To - Fatal编程技术网

Ruby on rails 如何在rails中全局阻止json呈现?

Ruby on rails 如何在rails中全局阻止json呈现?,ruby-on-rails,json,respond-to,Ruby On Rails,Json,Respond To,我有一个rails应用程序,其中大多数操作都响应json 是否有任何“开关”我可以关闭,以防止所有控制器响应json,尽管respond\u to方法调用,或者我仍然必须在每次操作中手动禁用它(这似乎很奇怪)。我有一个建议,尽管我担心有点不太正常:) class

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


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

我有一个建议,尽管我担心有点不太正常:)

class
before_过滤器将在任何特定控制器的方法之前触发

json头通常是“application/json”


对于
请求
,您可以在此处阅读更多内容:

我有一个建议,不过恐怕有点不太妥当:)

class
before_过滤器将在任何特定控制器的方法之前触发

json头通常是“application/json”


对于
请求
,您可以在此处阅读更多内容:

您也可以在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

也可以在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

事实上,这是一个非常好的解决方案,找不到更好的解决方案,谢谢:)@TamerShlash,我的荣幸:)不知道为什么要将运算符修改为完全匹配,因为格式可能包含除“json”以外的其他字符。我认为正则表达式匹配应该更好,并对其进行了修改。它给了我一个错误,因为它是
~=
而不是
=
,我不知道问题是什么,因为我不熟悉Ruby正则表达式,再次感谢:)@TamerShlash,是的,这是一个拼写错误,对不起。在上次编辑中修复。在Rails 4中,
请求.format
的类型为
Mime::type
,它不能正确解释
=~
运算符。使用
if request.format.to_=~/json/
代替。实际上这是一个非常好的解决方案,找不到更好的解决方案,谢谢:)@TamerShlash,我很高兴:)不知道为什么要修改运算符,使其完全匹配,因为格式可能包含除“json”以外的其他字符。我认为正则表达式匹配应该更好,并对其进行了修改。它给了我一个错误,因为它是
~=
而不是
=
,我不知道问题是什么,因为我不熟悉Ruby正则表达式,再次感谢:)@TamerShlash,是的,这是一个拼写错误,对不起。在上次编辑中修复。在Rails 4中,
请求.format
的类型为
Mime::type
,它不能正确解释
=~
运算符。如果request.format.to\s=~/json/
,则使用