我在控制器上使用動作緩存的操作。不過,我在緩存調用中使用了layout: false
標誌,因爲我的佈局具有與用戶相關的信息,例如登錄狀態。這工作完美。沒有佈局的條件佈局和動作緩存
然後我就被添加pjax護欄寶石,基本上添加此代碼到控制器:
layout ->(c) { pjax_request? ? false : 'application' }
這是對一些請求的佈局不會被渲染。現在我(在邏輯上)想要將這兩種方法結合在一起。
然而,當pjax_request? == true
我得到這個錯誤:
There was no default layout for MyController
什麼我做錯了,我怎麼能解決這個問題?
PS:這是最簡單的重複性在這種情況下:
class MyController < ApplicationController
layout false
caches_action :index, :layout => false
def index
end
end
呀就迫使
action_has_layout
,感謝您的建議。我在那裏砍了一下,寫了一個pull request來解決這個問題:https://github.com/rails/rails/pull/5328。 – 2012-03-07 16:53:26