В приложении Rails я использовал Faye (адаптер Rack) для push-уведомлений (для чата).
Я хочу использовать Faye для другого варианта использования (больше push-уведомлений), но я не могу понять это.
В моем приложении модель может быть создана из фонового задания, поэтому я хочу обновить одно из своих представлений (скажем, действие индекса) при создании модели.
Вот так:
приложение/модели/post.rb
class Post
include Mongoid::Document
after_create :notify_subscribers
private
def notify_subscribers
Faye::Client.publish("/posts")
end
end
приложение/просмотры/сообщения/index.html.erb
<%= subscribe_to(posts_url) do %>
uhh what do I do here? ajax call to refresh the whole page??
<% end %>
Итак, является ли хорошей идеей публикация уведомления непосредственно из обратного вызова after_create, и когда я получаю сообщение от сервера Faye, как мне выполнить «обновление»? Я просто делаю вызов AJAX для перезагрузки данных с сервера? Кажется, это будет медленно.
Кроме того, я хочу использовать что-то подобное для обновлений модели (скажем, пользователь добавил некоторые комментарии или автор изменил содержимое), поэтому постоянно перебирать БД не кажется хорошим планом...