Ruby on rails where 子句找不到正确的记录
Ruby on rails where clause not finding correct records
我有一个 rails 模型,其设置如下:
点:
id : int
name : varchar
subtype : int
我最近使用 mysql_dump 和导入将大量记录从一个数据库迁移到另一个数据库。迁移似乎进行得很顺利,如果我在控制台中查询一个 id,它会找到该记录。有这样一条记录:
id : 33
name : testpoi
subtype : 172
如果我尝试使用以下方法找到它:
Poi.where(:subtype => 172).first
总是returns无
如果我 运行 在我从中迁移数据库的系统上执行此确切查询,它确实有效。
如果我 运行 Poi.find(33)
它也会找到它。我试过了
Poi.where(:subtype => "172").first
还要确保它不是数据类型不匹配,但无济于事。
此外,如果我将此对象添加到集合中
@otherobject.poilist << Poi.find(33) #=> which has a has many with foreign key subtype
它工作得很好(returns 保存后为真),但如果我随后重新启动生产控制台,关联将不再存在,即使子类型 ID 与包含对象的 ID 匹配。
感谢大家的回复。事实证明,由于一些时髦的迁移,子类型字段确实是一个字符串。这里真正的奇迹是在某些情况下它确实起作用了,因为它不应该起作用。结案了!
我有一个 rails 模型,其设置如下:
点:
id : int
name : varchar
subtype : int
我最近使用 mysql_dump 和导入将大量记录从一个数据库迁移到另一个数据库。迁移似乎进行得很顺利,如果我在控制台中查询一个 id,它会找到该记录。有这样一条记录:
id : 33
name : testpoi
subtype : 172
如果我尝试使用以下方法找到它:
Poi.where(:subtype => 172).first
总是returns无
如果我 运行 在我从中迁移数据库的系统上执行此确切查询,它确实有效。
如果我 运行 Poi.find(33)
它也会找到它。我试过了
Poi.where(:subtype => "172").first
还要确保它不是数据类型不匹配,但无济于事。
此外,如果我将此对象添加到集合中
@otherobject.poilist << Poi.find(33) #=> which has a has many with foreign key subtype
它工作得很好(returns 保存后为真),但如果我随后重新启动生产控制台,关联将不再存在,即使子类型 ID 与包含对象的 ID 匹配。
感谢大家的回复。事实证明,由于一些时髦的迁移,子类型字段确实是一个字符串。这里真正的奇迹是在某些情况下它确实起作用了,因为它不应该起作用。结案了!