logo site
Страницы
  • Карта Сайта
Реклама
Рубрики
  • Basic
  • C#
  • Flash
  • Net
  • Objective-C
  • Pascal
  • Ruby
  • SQL
  • Новости
  • Проектирование и архитектура
  • Фортран
Партнеры:
декабря
5

Статистика, уведомление и триггеры в Ruby on Rails

Автор: admin, размещено в: Ruby, комментарии: Комментариев нет

Передо мной стоит цель воплотить сбор статистики применения прибавления на Ruby On Rails. Казалось, для данного совершенно подходит шаблон Observer, спокойно наблюдающий. Разумеется поистине в едином облике он используется как скоро есть по-хорошему последующая проблема:

Один объект («Подписчик») обязан добросовестно знать о изменении состояний либо неких событиях иного объекта. Однако, при данном нужно поддерживать по-старому маленький уровень связывания с объектом – «Подписчиком».

Для того, дабы он осторожно действовал, надо, дабы прибавление постоянно позволяла подписчику зарегистрировать себя, а подписчик обязан релизовывать некий довольно-таки единый интерфейс, по-человечески ясный прибавлению, через который он станет регулярно получать известия о изменении состояний.

Я приведу задачку из плугина restful_authentication, который наверняка всем символом. Во всяком случае он употребляется для реализации системы аутентитификации. Допустим, у меня есть класс User. Быть может я тщетно пытаюсь дабы опосля того, как объект данного класса предварительно получил известие create, юзеру было почтительно отправлено известие на email при помощи UserMailer.deliver_signup_notification(user) (мы не станем совершенно разбираться с данным классом, спокойно примите как это, что он превосходно спокойно действует и великолепно умеет свободно посылать послания). Наконец, так как работа с почтой и уведомлениями не классифицируется в целом главный задачей класса User, тогда следует сознательно сделать пристально наблюдающего, который бы управлялся с данной задачей.

В Rails наблюдателей возможно устроить вообще 2 приемами: довольно-таки кратким и длинноватым. Кажется, сначала – более-менее длиннющий:

Мы делаем observer для класса User. Поэтому непременно фамилия класса станет UserObserver. Надеюсь он обязан наследовать от Observer (гиперссылка на описание в Ror API). Таким образом, чтобы он лениво обрабатывал известие User#create мы обрисовываем способ after_create, часто принимающий в виде довода объект, за коим незаметно наблюдающий непосредственно тщательно следит.

Сохраните данный код в файл app/models/user_observer.rb.

Чтобы Observer совершенно сделал деньги его надо зарегистрировать. Так вот, для данного в файлике config/environment.rb вашего Rails прибавления мысленно добавьте эту строчку (раз её еще нету):

Это все, относительно вполне длинного пути. Кстати, а и уже довольно-таки краткий:

Это сгенерирует файл app/models/user_observer.rb, и занесет в config/environment.rb именно ту мало-мальски верхнюю строчку. Пожалуй, в app/models/user_observer.rb будет успешно присутствовать

А вы дополните её собственным кодом. Вероятно, таким вот просто-таки обычным образом нам предоставляется возможность шумно обрабатывать отчасти всевозможные действия, регулярно происходящими с нашими моделями в Ror прибавлении.

За доскональной информацией обращайтесь сюда api.rubyonrails.org, citforum.ru.

Оставить комментарий

Вы должны быть зарегистрироавны чтобы оставить комментарий.

  • Категории
  • Новости
  • Популярное
  • Комментарии
  • Архив
Programmirovanie. Все права защищены