我發現了一種在基於格式的篩選器之前跳過的方法,如下所示,但我想知道是否有更好的方法,因爲這會使事情混亂,很乾燥。如何跳過之前篩選器中的json/xml請求在rails中
before_filter do |controller|
:current_cart unless controller.request.format.js?
end
如果我不這樣做,JSON請求失敗,因爲current_cart法等方法,做事情只是針對HTML。
我發現了一種在基於格式的篩選器之前跳過的方法,如下所示,但我想知道是否有更好的方法,因爲這會使事情混亂,很乾燥。如何跳過之前篩選器中的json/xml請求在rails中
before_filter do |controller|
:current_cart unless controller.request.format.js?
end
如果我不這樣做,JSON請求失敗,因爲current_cart法等方法,做事情只是針對HTML。
你可以這樣來做:
before_filter :current_cart, :unless => :format_js?
def format_js?
request.format.js?
end
希望這有助於。
真的有幫助!我認爲'format_json?'是該方法的更好名稱。 – benastan 2013-01-21 06:43:30
我將它改爲'format_js'我同意別的名字不太好,但是js!= json。感謝這個想法! – 2013-01-21 13:16:17
如果將':current_cart'更改爲直接調用方法:'current_cart',這隻適用於Rails 4+。塊語法在某些情況下更可取,所以我想我會指出如何正確使用您的示例。 – 2015-11-10 19:52:48