Rails的福利局在這裏,所以有可能是出有更好的方法,但這裏是我20這個..
使用application_controller創建加載@gmail_session對象本身有這樣一個公司的方法,實例var並可用於所有控制器/視圖。
例如,
def get_using_remote_call
@gmail_session = //do some stuff
end
然後你就可以繼續前進,在每次調用該函數的任何控制器的負載,因爲在生產他們的第一負載它們被緩存後,這不應該直到造成問題的application_controller添加after_filter您應用得到10000S探視一天......
做同樣的事情的另一種方法是,包括在config /庫模塊和目錄添加到自動加載在你的config/application.rb中這樣
config.autoload_paths += %W(#{config.root}/lib)
這會自動加載模塊/類/什麼,然後你可以簡單地調用函數get_using_remote_call
,並把它作爲一個對象和IT連鎖,或者你可以
@gmail_session = get_using_remote_call
或者乾脆在你的控制器的after_filter/before_filter,來使用這個:)
希望這有助於!
我試過了你的第一個建議,但失敗了。這就是我所做的。在我的application_controller中,我有** login_gmain(帳戶)** _create gmail variable_,** logout_gmail ** _empty gmail variable_和** current_gmail ** _return gmail variable_。在頁面的第一次加載時,current_gmail能夠獲得活動的gmail會話,但在遠程調用之後,current_gmail方法不起作用。即使我包含after_filter:current_gmail。有沒有一種很好的方法來實現這一點?幫助我如何:) –