1
我想弄清楚如何從一個自定義響應者設置佈局。我想使用request.xhr?將渲染布局設置爲'ajax'。有誰知道如何做到這一點? 我用Rails 3,我有這樣的應答:從響應者設置佈局?
module AjaxLayoutResponder
def to_html
if request.xhr?
# do something here to change layout...
end
super
end
end
這似乎對我來說,應答是實現這個「AJAX」佈局切換的最佳方式。
這通常是我做什麼,但這個特殊項目使用爲不同控制器定製的佈局。這將始終使我的佈局「應用程序」,而不是定製的。在我看來,根據請求是否爲ajax來更改佈局,實際上確實符合響應者的描述。爲什麼控制器應該關心?響應者根據請求類型定製響應。這將促進幹代碼重用。而不必爲每個具有非標準佈局的控制器進行自定義的「set_layout」。 – demersus 2010-11-22 16:09:54
啊,我明白了。你有你的控制器命名的佈局嗎?如果是這樣,這樣的東西可能會工作:request.xhr? 'ajax':params [:controller] .singularize – 2010-11-22 20:45:10
這似乎是合乎邏輯的。我將不得不嘗試。謝謝 :) – demersus 2011-01-05 22:48:40