2017-03-28 43 views
0

我想創建一個ajax來計算我的notifications還沒有被讀取。如何用ajax和rails計數條目

到目前爲止,我有這個所有的工作只是不是阿賈克斯部分..我必須重新加載頁面看到更新的計數。我希望計數在沒有重新加載頁面的情況下自動更新。

_navbar.html.erb

<% if current_user.notifications.where(read: false).count > 0 %> 
 
     <div style="width:15px;height:15px;border:solid #00ccff 1px;background-color:#00ccff;border-radius:4px;float:right;margin-top:20px;margin-left:-15px;"> 
 
     <div style="padding:2px;margin-top:-6px;"> 
 
      <h style="color:white;"> <%= current_user.notifications.where(read: false).count %> </h> 
 
     </div> 
 
      
 
     </div> 
 
     <% end %>

什麼我需要做的,使這個計數,而重新加載用ajax頁面?我知道我需要做一個_navbar.js.erb我只是不知道我會在那裏輸入replace這個數字是剛剛提交的新數據。

回答

0

創建一個只返回當前用戶通知的端點。

class NotificationsController 
    def index 
    @notifications = current_user.notifications 
    render json: @notifications 
    end 
end 

然後你需要在JS文件中寫一個函數。

然後,如果你有jQuery然後在製造一種會叫上這條線的東西方法已經提供:

$.ajax(
     {url: '/notifications'} 
    ).done(function (result) { 
     // set the notification to the dom element from here 
     window.setTimeout(this.loadSyncStatus, 5000); 
    })