Система уведомлений Rails - PullRequest
       1

Система уведомлений Rails

2 голосов
/ 26 сентября 2011

Мне нужно создать систему уведомлений в стиле Facebook для приложения, над которым я работаю. Мне было интересно, какие предложения есть у каждого из вас, как это сделать? Если возможно, я бы хотел избежать использования базы данных для уведомлений, если это возможно, я бы хотел знать, как.

Заранее спасибо

Ответы [ 2 ]

2 голосов
/ 26 сентября 2011

В вопросе было неясно, нужно ли сохранять уведомления во время сеансов или от пользователя к пользователю (которые могут не быть в сети одновременно);тем не менее, у меня была похожая потребность в приложении Rails, и я реализовал его с помощью модели Notice ActiveRecord.Он используется для трансляции времени простоя и других ожидающих событий на каждой странице сайта.Уведомления будут отображаться впереди и в запланированное время.

class Notice < ActiveRecord::Base
  validates_presence_of  :header
  validates_presence_of  :body
  validates_presence_of  :severity
  validates_presence_of  :start_time
  validates_presence_of  :end_time
  validates_inclusion_of :severity, :in => %( low normal high )
end

Поскольку его необходимо было отображать повсеместно, в ApplicationHelper был добавлен вспомогательный метод для его последовательного отображения:

module ApplicationHelper
  def show_notifications
    now = DateTime.now.utc
    noticeids = Notice.find(:all, :select=>"id", :conditions=>['start_time >= ? or (start_time <= ? and end_time >= ?)', now, now, now])
    return "" if noticeids.count == 0 # quick exit if there's nothing to display
    # ...skipping code..
    # basically find and return html to display each notice
  end
end

Наконец,в макете приложения есть небольшой кусочек кода для использования метода ApplicationHelper # show_notifications.

0 голосов
/ 26 сентября 2011

В Rails есть система уведомлений по умолчанию - flash.Вы можете передавать свои собственные сообщения во флэш-памяти, а затем отображать их любым удобным для вас способом с помощью CSS и JS.Найдите в поиске некоторые плагины, чтобы они соответствовали вашим требованиям, хотя их не должно быть очень сложно внедрить самостоятельно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...