私のアプリでは、広告バナーがありますが、すべてのページには表示されません。だから、私は、アプリケーションのコントローラ内の広告バナーを定義しました:アプリケーションコントローラに変数を定義しますが、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)
はビューでは機能しません。任意のアイデアはどのようにこの問題を解決するには?ありがとう。
ApplicationControllerのインスタンス変数ではなく、 'ApplicationHelper'のヘルパーメソッド定義を試してみてください。 – sa77
ヘルパーを定義すると、' imressionist(ad_banner) 'を使用できなくなります。それは私にエラーを与えます: '<#class = 0x000000054e5cc8>:0x0000000520e680>のための'未定義のメソッド '印象派 ' –