gpt4 book ai didi

ruby-on-rails - 生产模式下的 Rails 3.1 将模型保存到数据库但返回 id 零

转载 作者:行者123 更新时间:2023-12-03 08:41:13 30 4
gpt4 key购买 nike

您好!
当我在 rails 3.1 中保存模型时发生了一件非常奇怪的事情

开发/生产中的同一项目

有一个带有 2 个字段(名称/州)的简单模型城市。

开发控制台

city = City.new(:name => "Sao Paulo", :uf => "SP")
city.save (true, no validations errors and record is created in database)

如果我调用“city.id”,我会得到保存在数据库中的 ID 的实际值,例如123.
它在开发中运行良好。

生产控制台

city = City.new(:name => "Sao Paulo", :uf => "SP")
city.save (true, no validations errors and record is created in database)

如果我调用“city.id”,我得到的值等于 0(不同于数据库中自动创建的值)

City.last (check if record is created in database...)
<City id: 22257, name: "Sao Paulo", uf: "SP", created_at: "2011-11-23 00:52:53", updated_at: "2011-11-23 00:52:53">

记录在数据库中创建,但在调用保存/创建后不返回 ID。有人以前看过这个吗?这是我第一次在生产中看到这种行为。它发生在项目中的每个模型上。我使用模型 City,因为它是最简单的。
我正在运行 Rails 3.1。

感谢您的帮助!

最佳答案

city.id = 0 不会对您的数据库做任何事情,它只会修改您拥有的 City 实例,要将它实际写入您的数据库,您应该更改实例属性后,在您的实例上使用 .save

同时手动设置自动递增唯一 sql 列的值似乎要求坏事发生。

另外我认为 ids 以 1 而不是 0 开头,尝试将其设置为 0 可能不会被 MySQL 接受。

关于ruby-on-rails - 生产模式下的 Rails 3.1 将模型保存到数据库但返回 id 零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8236097/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com