Отслеживание кликов по ресурсам рельсов по атрибутам ресурсов

У меня есть приложение rails 3, в котором есть реклама / специальные предложения, которые размещаются на сайте продавцами. Весь этот контент находится на моем сайте, трафик не перенаправляется на какой-либо внешний сайт. Я пытаюсь создать систему оплаты за клик, при которой продавцы платят за клик по сделкам / специальным предложениям, которые им принадлежат. В идеале для выставления счетов я мог бы создавать отчеты по общему количеству кликов по сделкам с поставщиками за определенный период.

В настоящее время я использую драгоценный камень thumbs_up для отслеживания избранных / голосов поставщиков по пользователям. Будет ли подобная система жизнеспособной для организации типа с оплатой за клик, чтобы отслеживать количество кликов по данной сделке (у thumbs_up есть метод, позволяющий только один голос на пользователя за экземпляр)? Кто-нибудь знает какие-нибудь хорошие драгоценные камни, которые уже включают в себя что-то вроде этого? Просто для ясности, я не прошу, чтобы кто-то написал код, а просто хочу получить какую-то информацию от любого, кто либо сделал это раньше, знает хороший способ сделать это или имеет какие-либо другие рекомендации для меня, Заранее спасибо!

Моя соответствующая модель продавца:

class Vendor < ActiveRecord::Base

    has_many    :deals
    acts_as_voteable
end

Моя соответствующая модель сделки:

class Deal < ActiveRecord::Base
    belongs_to  :vendor
end

1 ответ

Решение

Не должно быть слишком сложно свернуть свое собственное, и тогда будет проще настроить его под собственное приложение.

class Click < Activerecord::Base
  belongs_to :deal
  belongs_to :vendor, :through => :deal
end

Вы можете подумать о том, чтобы стать полиморфным с самого начала, на тот случай, если вы когда-нибудь захотите отследить клики по чему-либо, кроме сделок:

class Click < Activerecord::Base
  belongs_to :clickable, :polymorphic => true
  belongs_to :vendor, :through => :deal
end

Тогда просто сделайте довольно простой контроллер

class ClicksController < ApplicationController
  def create
    @deal = Deal.find(params[:deal_id])
    @deal.clicks.create
    redirect_to @deal.url
  end
end

Это должно стать хорошей основой для любой будущей функциональности.

Другие вопросы по тегам