Как посмотреть модель на предмет изменений? - PullRequest
3 голосов
/ 21 марта 2012

Допустим, у вас есть 2 модели ...

Store :has_many products 
Product :belongs_to store

.. а модель Product имеет атрибут :price.

Я хочу иметь представление, которое показывает пользователям обновленные цены продуктов, если они снижаются в стоимости. Я не уверен, с чего начать. Что делать, если я хочу дать пользователям выбор продуктов для просмотра? Как бы вы это настроили?

Ответы [ 3 ]

3 голосов
/ 21 марта 2012

Вы можете начать с ActiveRecord Observers в вашей ценовой модели, чтобы вызывать уведомление при каждом изменении цены.

Затем вы можете разнести эти уведомления по списку подписчиков.Существует множество решений для фабрик паб / суб.Один из них - встроенный в Rails API уведомлений, подробно описанный в книге Хосе Валима Создание приложений Rails .Еще один - Faye gem , посмотрите на их сайт .

Другие варианты - EventMachine, Node.js или Websockets.

2 голосов
/ 21 марта 2012

Что бы я сделал, это добавил бы поле «тренд» или что-то в этом роде, которое я буду обновлять каждый раз, когда цена меняется (с помощью обратного вызова или наблюдателя), и устанавливать для него «увеличение / уменьшение», или что-то в этом роде.это имеет это значение.Затем я буду искать все продукты, в которых тенденция уменьшается и которые были недавно обновлены (согласно updated_at), в последнее время это значение, которое вы определяете, оно может быть «в последние две недели», «с момента последнего входа пользователя»и т. д. и т. д.

1 голос
/ 21 марта 2012

Я бы использовал ajax с опросом.

На стороне сервера у меня будет фоновое задание (выберите из backgroundrb, rescue, cron и т. Д.).Каждый интервал опроса я буду видеть, если что-то изменилось, и если да, показывать содержимое.

Я бы отслеживал, что меняет использование временных отметок и сравнивает их с Now ().

...