我怎樣才能從application.html.erb中的數據庫中獲取值?我需要爲整個項目獲取這些值。這些值將永遠留在所有頁面上。如何將valus傳遞給application.html.erb。Ruby on rails:我如何從application.html.erb中的databse獲取值?有沒有像beforeRender?
有什麼像beforeRender? 是否有像appcontroller.rb重寫操作。
感謝
我怎樣才能從application.html.erb中的數據庫中獲取值?我需要爲整個項目獲取這些值。這些值將永遠留在所有頁面上。如何將valus傳遞給application.html.erb。Ruby on rails:我如何從application.html.erb中的databse獲取值?有沒有像beforeRender?
有什麼像beforeRender? 是否有像appcontroller.rb重寫操作。
感謝
你可以把方法的應用控制器
before_filter :load_data
def load_data
@data = Data.all
end
所有的控制器繼承的ApplicationController,所以數據會不惜一切行動被加載。在所有的意見,像這樣
class ApplicationController < ActionController::Base
before_filter :load_application_wide_varibales
private
def load_application_wide_varibales
@var = Model.where :condition => "whatever"
end
end
@var
然後將可
歡呼
你可以使用一個應用程序範圍before_filter
使用@data
可能是在你的應用程序控制器中創建一個方法並聲明它是一個輔助方法。然後你可以在application.html.erb中調用該方法。例如,如果你希望能夠使用當前用戶在整個應用程序你會做這樣的事情:
class ApplicationController
helper_method :current_user
def current_user
@current_user ||= User.find(session[:user_id])
end
end
然後在application.html.erb,你可以做到以下幾點:
Hello <%= current_user.name %>
也可以使用before_filter
之類的建議,但在此解決方案中,數據庫僅在必要時纔會被觸發。隨着before_filter
它總是被擊中。
的最佳方式 - 現在你可以在你application.html.erb file
before_filter? - http://guides.rubyonrails.org/action_controller_overview.html#filters – krichard