我想在每次收到一個ajax請求(我正在使用的網站是完整的ajax ...)時替換一組div。例如,它可能正在檢查收件箱中的郵件數量,或者顯示用戶統計信息...渲染前調用函數
事情是我不想在我的代碼中多次重複對我的呈現函數的調用。
我試圖在before_filter中調用我的函數,但因爲我調用了render:update,所以第二次不起作用。
我試圖在application_controller創建自己的功能render_page:
def render_page
render :update do |page|
yield(page)
# page.replace_html :div, ...
end
end
但是不知怎麼的背景下似乎失去了:當我呼籲控制器的功能render_page,我無法訪問輔助功能...
謝謝!
不是一個答案,但如果你想訪問控制器中的助手,你必須包括他們:'include RoutesHelper'。編輯:但你確定這應該在你的控制器操作中被調用?我認爲page.replace_html應該在你的.js.erb文件中調用... – Robin
從技術上講,它可以工作,但我知道這對MVC組織不好...但問題仍然存在;是否有可能在每個.js.erb文件的末尾執行相同的代碼部分,而沒有任何重複? – sdrdis