【发布时间】:2012-11-03 15:59:43
【问题描述】:
我有一个 Advert 模型,它基本上有一个图像、标题和一个网址。我使用 CarrierWave 作为图像。一切正常,但我想统计展示次数和点击次数。
到目前为止,我添加了两个整数列:展示次数、点击次数
我有一个 pages 控制器并设置了一个 @advert 变量,该变量会根据页面而变化。阅读此question 后,我能够增加展示次数:
def index
@advert = Advert.sample
@advert.increment! :impressions
end
我无法增加点击次数 |下面是我需要修改的代码,以便当用户点击 image_tag 时,他们会像往常一样被带到 URL,但 @advert 会增加 clicks 列。这是我当前的代码(我使用 HAML,这是代码在文件中:_advert.html.haml):
= link_to image_tag("#{advert.foto_url.to_s}",:alt => "an image ad linking to #{advert.url}", :title => advert.title), advert.url, :target => "blank"
成功增量的最简单、最干净的方法是什么!当有人点击上面的链接时,广告上的 clicks 属性?
更新:
我正在使用下面 Aaron 的建议,但这会导致两个新问题:
当用户将鼠标悬停在图像上时,他们将看到与最终到达的链接不同的链接。我希望他们看到点击后最终到达的最终 URL,而不是简单地重定向以计算点击次数。
如果有人直接调出广告网址(例如:/adverts/1),计数器会增加!无需点击。
我实际上没有 Advert 的显示视图,但添加它是为了完成这项工作。 所以要明确这是可行的,但感觉它违反了最佳做法。 感谢 Aaron。
【问题讨论】:
标签: javascript ruby-on-rails ruby-on-rails-3.2