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