在我的應用程序中,我將有一個廣告條,但不會顯示在每個頁面上。所以,我已經定義了廣告橫幅在應用控制器:在應用程序控制器中定義一個變量,但不要在content_for標記不存在的頁面上使用它
before_action :set_ad_banner
def set_ad_banner
@ad_banner = Advertising
.where('date_start_on <= ? AND date_end_on >= ?', Date.today, Date.today)
.order('RAND()')
.take
impressionist(@ad_banner)
end
我用impressionist
寶石看,多少次的廣告展示。但是,按照現在的設置,這樣做會在每次加載任何頁面時計算印象數,即使橫幅中沒有content_for
標記也是如此。我也嘗試將代碼移到視圖中,但此代碼:impressionist(@ad_banner)
在視圖中不起作用。任何想法如何解決這個問題?謝謝。
嘗試在ApplicationHelper上使用助手方法定義而不是ApplicationController上的實例變量 – sa77
如果我定義了助手,我將無法使用'imressionist(ad_banner)'。它給了我一個錯誤:#<:0x0000000520e680>' –