2016-10-13 11 views
0

通知パネルにレコードのリストがあります。ユーザーが1つのインスタンスをクリックすると、これらの通知がパネルに表示されます。公共アクティビティこのリダイレクトに、その通知の詳細を与えるカスタムURLへのユーザーは、私は、読み取り通知を削除したAJAXスクリプトが実行されている真の通知ビューのアクティブなレコードインスタンスを一時的に保存する

def email_confirmed 
    # loads one specific activity/notification using the id from the url params 
    @notification = load_activities.find(params[:id]) 
    # get the establishment,that is the trackable object,using activity id 
    # get the establishment using the 'trackable_id' field in the activities 
    # table 
    # Update the read column in the database on visit on the notification details 
    # view 
    @notification.update_columns(read: true) 
    @establishment_id = @notification.trackable_id 
    # use this instance of an establishment in the 'view all' action view 
    @establishment_details = Establishment.where(id:@establishment_id) 
    end 

に活動テーブル内のその通知の読出列を変更します

setInterval(function(){ 
    $.ajax({ 
    url:'/notifications/remove_read_notifications', 
    type: "GET", 
    success: function(data){ 
     console.log("in side delete"); 
    } 
    }); 

    },3000); 

通知テーブルを読んでいるうちに、ユーザーがこのページを更新すると、「id」のインスタンスがデータベースに存在しないというエラーが表示されないようにしてください。その通知を一時的に保存することができます。助けていただければ幸いです。

答えて

1

AJAXの全体的なポイントは非同期ですが、達成しようとしている動作がその目標と一致していません。 AJAXを使用して通知を削除する代わりに、通知の読み取りステータスを使用してプレゼンテーションロジックを指示します。ユーザーに表示されない場合は、通知が削除されたかどうかは関係ありません。

+0

私は何をしたのですか?delayed_job_cron gemを使用して毎日2amでデータベースを削除しています – Teebo

+0

それを提案することを考えましたが、そのアプリケーションの性質がわかりませんでした。そのジョブが実行中に通知を表示している場合、その問題を再現する可能性があります。 –

+0

オハイオ州の少年..私はそこにいくつかの微調整をしなければならない、ありがとう – Teebo

関連する問題