gpt4 book ai didi

ruby-on-rails - 即使有要返回的记录,Rails find 也会返回 nil

转载 作者:行者123 更新时间:2023-12-03 17:59:44 26 4
gpt4 key购买 nike

我正在做一个 RoR 项目(RoR 3.1 和 Ruby 1.9.2p290),我遇到了一些严重的 即使我知道应该找到东西,查询也找不到东西的奇怪问题 .

为简单起见,假设有一个 Car具有 color 的模型属性。我在数据库中有几条记录,都是黑色的。获取所有记录并在 View 中显示它们工作正常,我一点也不觉得奇怪。

@cars = Car.all

这是我得到第一辆车并检查颜色是否等于黑色的控制台:
ruby-1.9.2-p290 :022 > Car.first.color == "Black"
Car Load (0.2ms) SELECT "cars".* FROM "cars" LIMIT 1
=> true

如您所见,这很好用。现在,如果我尝试使用 find_by_color 进行查询它返回 nil !那不应该。
ruby-1.9.2-p290 :021 > Car.find_by_color("Black")
Car Load (0.3ms) SELECT "cars".* FROM "cars" WHERE "cars"."color" = 'Black' LIMIT 1
=> nil

我检查颜色的任何类型的查询也是如此,例如
find(:all, :conditions => { :color => "Black" })

我已经尝试了所有可以尝试的方法,但目前我不知道是什么导致了这样的事情。

知道这可能是什么或从哪里开始寻找吗?

我很感谢在我发疯之前解决这个问题的任何帮助;)

编辑

颜色来自我通过文件上传导入的 CSV 文件并将其解析为 Car 记录。可能有什么编码或类似的东西吗?如果有帮助,我也会在开发中使用 SQLite。

更新

我尝试了另一个有效的查询!
Car.where('color like ?', "Black")

这将返回所有记录。很奇怪。这些查询之间可能有什么区别?

最佳答案

问题是编码,当我添加

value.encode('utf-8')

对于我导入的 CSV 文件的每个字段,我都在数据库中得到了正确的值。

编码问题似乎对查询的影响不同。

关于ruby-on-rails - 即使有要返回的记录,Rails find 也会返回 nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8915635/

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