アプリケーションコントローラーにアクションがありますapplication_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("/notifications", activity: activity)
end
def activity
@activities = current_user.activities.includes(:author, :trackable).order(created_at: :desc) if signed_in?
end
別のユーザーがコメントを書いたとき、または他のアクションを実行したときに、ユーザーに通知を生成します。
views/activities/_activity.html.erb にパーシャルがあります
<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 %>
</div>
<%= subscribe_to "/notificatons" %>
/layouts/_header.html.erb での呼び出し
<%= render @activities %>
そして今、他のユーザーがコメントを作成するときに、Private_pub gem new trac_activity を使用して publish_to("/notifications") が必要ですが、これを行う方法がわかりません
私はこれをする必要があります
<% publish_to "/notifications" do %>
$("#activity").append("<%= j render(@activities) %>");
<% end %>
アプリケーションコントローラーでアクションを実行し、remote: true のフォームがない場合、ファイルを保存する必要がある場所がわかりません。