AdilA
@AdilA
Нравится кодить, изучаю go c echo

Как правильно обновить объект в coffee script?

В общем пилю систему уведомлений и никак ее не допилю! :0
Все работает за исключением того что не могу обновить в live режиме новые уведомления
Использую private_pub и никак не пойму как правильно передать объект в coffee script
Имеем следующее
aplication_controller.rb
before_filter :activity

def track_activity(user, trackable, action = params[:action], author = current_user)
    Activity.create! user: user, trackable: trackable, action: action, author: author
     PrivatePub.publish_to("/messages/new", cool: activity)
  end

  def activity
    if signed_in?
      @activities = current_user.activities.includes(:trackable).order(created_at: :desc)
    end
  end
end


layout/header.html.erb
<div class="user-notification">
          <a class="fa fa-life-ring fa-lg" href="javascript:void(0);" tabindex="1"></a>
          <div class="activity activity_open" id="activity">
            <% @activities.each do |activity| %>
    <%= link_to activity.user.name, activity.user %>
    <%= render "activities/#{activity.trackable_type.underscore}/#{activity.action}", activity: activity %>
  
<% end %>
<%= subscribe_to "/messages/new" %>
          </div>

javascript/messages.js.coffee
P
rivatePub.subscribe "/messages/new", (data, channel) ->
alert $("#activity").append("<%= data.cool = @activities %>");


и на алерте срабатывает object object понимаю что нужно поменять @activities но не могу понять как. подскажите кому не сложно
  • Вопрос задан
  • 2282 просмотра
Пригласить эксперта
Ответы на вопрос 1
MpaK999
@MpaK999
Буду!
вот этот код
alert $("#activity").append("<%= data.cool = @activities %>");

у вас отрендерится один раз, а надо чтобы он работал постоянно, измените его на
console.log(data); # вывести в консоль, что пришло
$('#activity').append(data.cool);
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы