内存vs数据库变量值的差异

问题描述:

我有一个pdf附件布尔标志设置在我的应用程序和我的数据库显示它设置为true。但是当我的调试器加载时,我检查它总是显示false内存vs数据库变量值的差异

这是我获取标志时生成的sql

CACHE (0.0ms) SELECT `spree_products`.* FROM `spree_products` INNER JOIN `spree_variants` ON `spree_products`.`id` = `spree_variants`.`product_id` INNER JOIN `spree_line_items` ON `spree_variants`.`id` = `spree_line_items`.`variant_id` WHERE `spree_products`.`deleted_at` IS NULL AND `spree_variants`.`deleted_at` IS NULL AND `spree_line_items`.`order_id` = 1070722790 ORDER BY spree_line_items.created_at ASC LIMIT 1 [["order_id", 1070722790]] 

这是我用于上述结果:

products.first.attached_pdf 

这总是导致false。我不知道它是从内存缓存还是从内存中提取数据,但现在对我来说这是相当麻烦的。为什么内存和数据库的值不同?任何帮助将是伟大的!

+1

你可能需要添加一些代码来使这更交代。 – jcm

+0

你可以更具体地说明我应该发布什么样的应用程序代码部分吗? – mhaseeb

+0

我的数据库正在显示更改,但在应用程序级别,布尔值未更新。 – mhaseeb

查询结果取自数据库查询缓存(从CACHE调试消息中可以看出),而不是从数据库中取得。如果products一些其他记录关联,那么你可能需要从数据库中的数据的force a real query

products(true).first.attached_pdf