我正在查询与用户相关的同一日期的对象(即,如果用户所在的时区是 2016 年 11 月 11 日,他们应该会看到在他们所在时区的 11 月 11 日发生的事件)。
我的数据库以 UTC 格式存储事件日期时间(日期时间类型)。当我尝试:
Event.where(DATE(datetime) = ?", Time.zone.today)
我希望它能够提取日期时间与当前用户的时区(在around_actionvia 中设置Time.use_zone)相同的日期的事件。我在 application.rb 中有这个设置:
config.active_record.time_zone_aware_types = [:datetime, :time]
但是,不会返回存储在第二天 UTC 中的事件。例如,山地时间 11/11 10PM 的事件存储在 UTC 的 11/12 5AM。它仍然应该返回给 Mountain Time 用户,就像 11/11 发生的那样。
如何查询数据库以获取当前用户日期的事件?非常感谢!
我的移动应用程序会连续将多个文件上传到服务器,这些文件通常来自连接强度存在问题的偏远地区。为此,我想尝试几次发送文件。我还想在失败时继续尝试下一个,导出结束时显示所有错误消息(即“已上传 10 个文件,3 个失败...”)
但是,我无法弄清楚带有承诺的递归重试模式。这是我到目前为止所拥有的:
sendFile(params, retries = 3){
console.log("SENDING FILE: ", retries, "attempts remaining", params)
return new Promise((resolve, reject)=>{
if(retries > 0){
this._sendFile(params)
.then(()=>{
// Upload Success
console.log("Upload Success!")
resolve()
})
.catch((err)=>{
console.log("Upload Fail", err)
// Retry
this.sendFile(params, --retries)
})
}else{
console.log("Failed 3 times!!!")
//Record error
this.exportStatus.errors.push({
message:"A file failed to upload after 3 attempts.",
params: params
})
//Resolve and move on to next export
resolve()
}
})
}
_sendFile(params){
// Mobile - File Transfer
let options = { …Run Code Online (Sandbox Code Playgroud)