gpt4 book ai didi

ruby-on-rails - 即使查询正确,Activerecord也无法按属性查找模型

转载 作者:行者123 更新时间:2023-12-03 17:55:15 24 4
gpt4 key购买 nike

我有一个名为Invitation的模型,该模型具有一个名为code的属性。该应用程序的目标是使用在某处输入的代码找到正确的邀请。

但是,我的问题是,即使输入正确,ActiveRecord在数据库中查询时似乎也找不到任何结果。我创建了这个小测试来说明问题:

ruby-1.9.2-p290 :003 > code = Invitation.first.code
Invitation Load (0.4ms) SELECT "invitations".* FROM "invitations" LIMIT 1
=> "86f50776bf"


所以现在我已经将此邀请的代码加载到一个变量中

ruby-1.9.2-p290 :004 > i = Invitation.where(:code => code)
Invitation Load (0.2ms) SELECT "invitations".* FROM "invitations" WHERE "invitations"."code" = '86f50776bf'
=> []


即使代码直接来自数据库,查询的响应也是一个空数组。使用 code == Invitation.first.code查看值是否相等时,它返回 true。我已经检查了Ruby和数据库的数据类型,它们都是Strings。

是什么原因造成的?我该如何解决?

最佳答案

根据您的评论,列可能不是VARCHAR而是CHAR,或者包含ActiveRecord ORM层或数据库驱动程序已修剪掉的尾随空格。 'foo''foo '不是等效的,但它们足以匹配。

您可能需要将该列切换为可变长度,或调整查询以进行测试:LIKE

关于ruby-on-rails - 即使查询正确,Activerecord也无法按属性查找模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7505305/

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