2
我有以下代碼:設置基於模型實例,並保持乾燥
around_filter :event_time_zone
def event_time_zone(&block)
@event.present? ? Time.use_zone(@event.venue.time_zone_name, &block) : yield
end
我把它放在我的ApplicationController。
問題是,當調用around_filter時,實例變量@event從不設置。然而,它在每個資源控制器的操作之前都可用(通過使用CanCan),但是我不想在所有這些控制器中撒上一堆around_filter調用。
有沒有一個簡單的方法,我可以使用上面的代碼,但不能在任何地方重複自己?
我可以做一個基於用戶的time_zone,但是如果用戶在不同的時區管理事件呢?顯示的唯一相關日期只會在事件時區中顯示。
你是正確的射擊順序。感謝那篇博客文章,我認爲這是我需要了解的所有信息。我已經有了一切正常的工作,只是對所有in_time_zone的垃圾無處不在。通過模型和控制器級別的一些便利方法,我可以擺脫大部分TZ代碼。謝謝! – JBlake 2014-08-31 17:26:40