4
下面是用我的控制器的Rails的respond_to重定向除了X MIME類型的所有請求
我想限制除HTML所有MIME類型的典型的respond_to塊IM(可以說)。 無法想出解決方案,這怎麼可能?如果請求是json,這個塊什麼都不做,這是好的,但我想要的是重定向任何不是html的請求。
感謝
下面是用我的控制器的Rails的respond_to重定向除了X MIME類型的所有請求
我想限制除HTML所有MIME類型的典型的respond_to塊IM(可以說)。 無法想出解決方案,這怎麼可能?如果請求是json,這個塊什麼都不做,這是好的,但我想要的是重定向任何不是html的請求。
感謝
的由respond_to
產生format
對象具有所有常用的MIME類型(HTML,JS,XML等)的,它也有一個包羅萬象的MIME類型any
將處理一切。因此,在這種情況下:
respond_to do |format|
format.html
format.any { redirect_to :foo }
end
將使用html的默認呈現,並將重定向其他任何內容。有關詳細信息,請參閱文檔(http://apidock.com/rails/ActionController/MimeResponds/respond_to)
yes嘗試使用format.any之前,但在上述情況下,使用html mime類型的請求也被重定向到foo,所以這不能解決它。 – dmtzz
它們應該按順序處理,所以'format.html'應該贏得'format.any'。如果你按照正確的順序安排了它們,並且仍然存在問題,我會檢查錯誤,或者在format.html和format.any中添加一個塊,以查看是否可以使用調試器來識別並識別爲什麼它沒有做你期望的 –
添加一些虛擬代碼format.html解決了它! format.html { puts「blabla」 }不知道爲什麼這沒有代碼塊不起作用。無論如何感謝您的幫助:-) – dmtzz