例如,我將遍佈整個站點的部分<%= render "layouts/location" %>
放在視圖中。我需要佈局的控制器(我試過layouts_controller.rb),所以我可以做如何在控制器中定義一個局部函數以在所有視圖中工作? Ruby on Rails
def _location
@city = request.location.city
@state = request.location.state
end
的部分包含的代碼<%= @city %>, <%= @state %>
這是所有有效,應該顯示訪問者的城市和國家在任何頁面上渲染部分。
然而,當我這樣做,並推送到heroku和遷移數據庫,我得到錯誤: 應用程序中發生錯誤,您的網頁無法送達。請稍後重試。
如果您是應用程序所有者,請查看日誌以獲取詳細信息。
所以問題是,我該如何定義一個函數的部分?
這是部分使用_a lot_?因爲你可以在ApplicationController中設置一個'before_filter'來爲你設置這些變量。即使你的部分被使用了,比如在40%的頁面中,在每個請求中花費幾毫秒來設置這些變量也不是什麼大問題。 – MrDanA 2012-04-11 20:00:48
葉,就像70%的頁面,我會before_filter然後def位置?或_location?要麼 ? – Laser 2012-04-11 20:06:21
我會舉一個例子作爲答案。 – MrDanA 2012-04-11 20:09:41