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

У меня есть приложение 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

person settheline    schedule 10.11.2013    source источник
comment
Лучше выкатить свой, если нет подходящих гемов. В конце концов, «большой палец вверх» отличается от клика, хотя реализация может выглядеть похожей. Вы, наконец, почувствуете себя некомфортно из-за разницы.   -  person Billy Chan    schedule 10.11.2013
comment
Думаю, ты прав, Билли.   -  person settheline    schedule 10.11.2013


Ответы (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

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

person rurabe    schedule 10.11.2013
comment
Да, мне это нравится. Вероятно, лучше всего свернуть свой собственный, и это отличное начало. Спасибо! - person settheline; 10.11.2013