小编mik*_*agz的帖子

ActiveRecord 查询用户时区中的日期

我正在查询与用户相关的同一日期的对象(即,如果用户所在的时区是 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 发生的那样。

如何查询数据库以获取当前用户日期的事件?非常感谢!

database timezone ruby-on-rails rails-activerecord

5
推荐指数
1
解决办法
2913
查看次数

Promise 重试,直到使用 Typescript 成功/失败

我的移动应用程序会连续将多个文件上传到服务器,这些文件通常来自连接强度存在问题的偏远地区。为此,我想尝试几次发送文件。我还想在失败时继续尝试下一个,导出结束时显示所有错误消息(即“已上传 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)

javascript typescript ionic-framework es6-promise ionic3

5
推荐指数
1
解决办法
1万
查看次数