Я использую Rails + Backbone + Faye для создания примера приложения чата.
В настоящее время я могу использовать возможности обмена сообщениями Фэй для записи в DOM при создании события, хотя на самом деле я не создаю экземпляр базовой модели. Учебник Алы Райан Бейтс, я просто звоню внутри
create.js.erb
<% broadcast "/messages/new" do %>
$("#chats-table").append("<%= escape_javascript render :partial => "chat", :locals => { :chat => @chat } %>");
<% end %>
И опубликовать его в другом javascript:
faye.subscribe("/messages/new", function(data) {
eval(data);
});
Я бы хотел немного реорганизовать это и использовать модели магистрали. Хорошим вариантом использования будет метод удаления.
Моя модель чата привязана к событию клика, удаление которого вызывает:
model.destroy();
this.remove();
Backbone вызовет метод удаления и отправит запрос на удаление в / entity / id
Это также отправляет rails '/views/delete.js.erb'.
Там я вызываю вспомогательный метод, который публикует сообщение с кодом Ruby.
<% broadcast "/messages/delete" do %>
<%= @chat.to_json.html_safe; %>
<% end %>
Слушатель
var faye = new Faye.Client('http://0.0.0.0:9292/faye');
faye.subscribe("/messages/delete", function(data) {
});
Здесь мне было интересно, смогу ли я каким-то образом создать удаленную модель магистрали, чтобы я мог перенести это событие на экран каждого и удалить его из DOM. По сути, я хотел бы вызвать this.remove (); внутри клиента faye, а не в модели чата. Это вообще возможно?