在Rails中自动更新数据记录

时间:2018-08-21 05:14:48

标签: javascript ruby-on-rails

我目前有User个具有name属性的模型,并且正在使用ajax来获取所选数据。

JS看起来像这样:

$("#save").click(function(){
  var checkedUser = [];
  $.each($("input[name='selected_user']:checked"), function(){
    checkedUser.push($(this).val());
  });

  $.ajax({
    type: "POST",
    url: "/users/<%= current_user.id %>/friend", 
    data: {checked_user: checkedUser}, 
  })

控制器动作:

def friend
  user = User.find(params[:user_id])
  checked_user = params[:checked_user]
  @user = User.where(id: checked_user)
end

我想构建一个功能,可以根据复选框的输入来更新数据记录,并希望给出时间范围。

例如,如果有一个用户并且有一个朋友列表,并且用户检查了朋友“ A”并提交,则朋友A不应在用户的朋友列表中显示为已设置的时间段(可以是24小时或10小时),等到时间到了,我希望他们再次回到列表中,就像这样:

用户->将朋友A设置为不显示10分钟->在朋友列表中选中显示朋友A-> 10分钟后->朋友A再次显示。

Q1)我是否应该创建一个具有布尔类型的新属性,然后更新该属性?还是有更好的方法做到这一点?

Q2)如何处理类似10分钟后取消选中已检查用户的情况,我应该使用JS吗?

1 个答案:

答案 0 :(得分:0)

1)我将添加两个属性,durationchecked_at,或者仅仅是一个类似expires_at的属性。这将使#2更容易。

2)您将要使用工作程序安排定期的background job,用它来删除所有过期的条目。