【发布时间】:2021-05-30 20:39:07
【问题描述】:
由于某种奇怪的原因,new_messages_count 列在数据库中没有更新为零。我正在从控制器执行此操作:
@conversation = Conversation.find(params[:id])
@conversation.update(new_messages_count: 0)
列设置如下:t.integer :new_messages_count, default: 0, null: false
如果我在 rails 控制台内执行上述操作,则该列将更新为零。我不知道为什么会这样,但有人可以告诉我如何从控制器将列更新为零吗?
【问题讨论】:
-
您是否将控制器文件中的字段列入白名单?
-
在您提交请求时也添加您的日志
-
您可以随时使用调试器查看
@conversation是否由于任何验证检查而失败。如果您看到 Commit 消息或 Rollback 发生,请检查日志。 -
感谢@ManojMenon 的回复。我不认为我必须将控制器内的列列入白名单......因为我在 show 方法中有上述代码。因此,当我访问该显示页面时,
new_messages_count列需要更新为零。这没有发生!同样,现在我正在仔细检查控制台,更新操作根本没有出现。 -
Conversation Update (0.8ms) UPDATE "conversations" SET "updated_at" = $1 WHERE "conversations"."id" = $2 [["updated_at", "2021-03-01 10:34:42.686009"], ["id", 3]] ↳ app/controllers/messages_controller.rb:11:inchat_room'` (0.4ms)
标签: ruby-on-rails