【问题标题】:How to skip before filters for json/xml requests in rails如何在rails中的json / xml请求过滤器之前跳过
【发布时间】:2010-07-02 17:16:50
【问题描述】:

我找到了一种在基于格式的过滤器之前跳过的方法,如下所示,但我想知道是否有更好的方法,因为这会使事情变得混乱并且不是很干燥。

before_filter do |controller|
  :current_cart unless controller.request.format.js?
end

如果我不这样做,json 请求会失败,因为 current_cart 方法和其他方法只对 html 进行处理。

【问题讨论】:

  • 这仅适用于 Rails 4+,如果您将 :current_cart 更改为直接调用方法:current_cart。在某些情况下,块语法更可取,所以我想我会指出如何正确使用您的示例。

标签: ruby-on-rails json before-filter


【解决方案1】:

你可以这样做:

before_filter :current_cart, :unless => :format_js?

def format_js?
  request.format.js?
end

希望这会有所帮助。

【讨论】:

  • 真的很有帮助!我认为format_json? 是该方法的更好名称。
  • 我把它改成了format_js 我同意这个名字不太好但是js != json。谢谢你的想法!
猜你喜欢
  • 2022-10-23
  • 1970-01-01
  • 2013-04-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-13
相关资源
最近更新 更多