我在通知面板上有一个记录列表,我使用gem 公共活动用这些通知填充面板,当用户点击一个实例时我将用户重定向到自定义URL将提供有关该通知的详细信息,在此重定向上,我将活动表中该通知的读取列更改为true
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
我运行的AJAX脚本删除了读取通知
setInterval(function(){
$.ajax({
url:'/notifications/remove_read_notifications',
type: "GET",
success: function(data){
console.log("in side delete");
}
});
},3000);
现在,在我阅读通知表时,我希望如果用户刷新此页面,它不能给出一个错误,说明数据库中不存在带有“id”的实例,因为有办法规避这将允许我暂时存储该通知,帮助将不胜感激
答案 0 :(得分:1)
AJAX的全部意义在于它是异步的,但您尝试完成的行为与该目标不一致。不使用AJAX删除通知,而是使用通知的读取状态来指示表示逻辑。如果用户没有看到,则通知是否被删除无关紧要。