【问题标题】:Rails record update works locally but not in productionRails 记录更新在本地有效,但在生产中无效
【发布时间】:2018-01-07 21:12:01
【问题描述】:

为什么一个简单的更新可以在本地工作,但不能在 heroku 上生产(repos 是相同的,一切都是最新的)?在下面的日志中,我可以看到要更新的参数正在将其放入请求中,但不知何故,sql 输出仅在以下位置更新:

Video Update (3.1ms)  UPDATE "videos" SET "updated_at" = $1 WHERE "videos"."id" = $2  [["updated_at", "2018-01-07 20:54:51.465131"], ["id", 85]]

在开发中,在开发服务器日志中产生完全相同的代码:

Video Update (0.7ms)  UPDATE "videos" SET "imdb_id" = $1, "updated_at" = $2 WHERE "videos"."id" = $3  [["imdb_id", "566"], ["updated_at", "2018-01-07 20:09:28.366552"], ["id", 119]]

因此正在进行更新但没有参数,即使参数已列入白名单并包含在请求日志中。我什至不确定该问题要包含哪些信息或问题出在哪里(rails、postgres、heroku)。

我的生产日志:

2018-01-07T20:54:51.408709+00:00 app[web.1]: I, [2018-01-07T20:54:51.408622 #4]  INFO -- : [6fad6a5f-021f-46ec-93a8-de53735f66f1] Processing by VideosController#update as HTML

2018-01-07T20:54:51.408843+00:00 app[web.1]: I, [2018-01-07T20:54:51.408752 #4]  INFO -- : [6fad6a5f-021f-46ec-93a8-de53735f66f1]   Parameters: {"utf8"=>"✓", "authenticity_token"=>"NJR5RNVHisPn1rDbglvmEIE80fk3pZjEfZ0YqOpXKGldRLR2JitrJrGf/syXfMaO8AiMtvo7N/EJqM/ToLkSLQ==", "file"=>"", "video"=>{"title"=>"Coco", "description"=>"", "imdb_id"=>"777", "public"=>"true"}, "commit"=>"Update", "id"=>"85"}

2018-01-07T20:54:51.445716+00:00 app[web.1]: D, [2018-01-07T20:54:51.445569 #4] DEBUG -- : [6fad6a5f-021f-46ec-93a8-de53735f66f1]   Video Load (7.6ms)  SELECT  "videos".* FROM "videos" WHERE "videos"."id" = $1 LIMIT $2  [["id", 85], ["LIMIT", 1]]

2018-01-07T20:54:51.448739+00:00 app[web.1]: D, [2018-01-07T20:54:51.448624 #4] DEBUG -- : [6fad6a5f-021f-46ec-93a8-de53735f66f1]   User Load (1.1ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1 ORDER BY "users"."id" ASC LIMIT $2  [["id", 7], ["LIMIT", 1]]

2018-01-07T20:54:51.451649+00:00 app[web.1]: D, [2018-01-07T20:54:51.451565 #4] DEBUG -- : [6fad6a5f-021f-46ec-93a8-de53735f66f1]    (0.9ms)  BEGIN

2018-01-07T20:54:51.459864+00:00 app[web.1]: D, [2018-01-07T20:54:51.459743 #4] DEBUG -- : [6fad6a5f-021f-46ec-93a8-de53735f66f1]   User Load (5.1ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1 LIMIT $2  [["id", 7], ["LIMIT", 1]]

2018-01-07T20:54:51.485827+00:00 app[web.1]: D, [2018-01-07T20:54:51.485674 #4] DEBUG -- : [6fad6a5f-021f-46ec-93a8-de53735f66f1]   Video Update (3.1ms)  UPDATE "videos" SET "updated_at" = $1 WHERE "videos"."id" = $2  [["updated_at", "2018-01-07 20:54:51.465131"], ["id", 85]]

2018-01-07T20:54:51.490476+00:00 app[web.1]: D, [2018-01-07T20:54:51.490385 #4] DEBUG -- : [6fad6a5f-021f-46ec-93a8-de53735f66f1]    (2.4ms)  COMMIT

2018-01-07T20:54:51.491713+00:00 app[web.1]: I, [2018-01-07T20:54:51.491568 #4]  INFO -- : [6fad6a5f-021f-46ec-93a8-de53735f66f1] Redirected to https://www.browzable.com/library

【问题讨论】:

  • rails s -e production 在生产模式下本地检查您的代码。

标签: ruby-on-rails heroku activerecord


【解决方案1】:

我重新启动 Heroku 后它工作了。也许在我迁移后它没有重新启动。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-17
    • 2012-11-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多