内存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
。我不知道它是从内存缓存还是从内存中提取数据,但现在对我来说这是相当麻烦的。为什么内存和数据库的值不同?任何帮助将是伟大的!
答
查询结果取自数据库查询缓存(从CACHE
调试消息中可以看出),而不是从数据库中取得。如果products
一些其他记录关联,那么你可能需要从数据库中的数据的force a real query:
products(true).first.attached_pdf
你可能需要添加一些代码来使这更交代。 – jcm
你可以更具体地说明我应该发布什么样的应用程序代码部分吗? – mhaseeb
我的数据库正在显示更改,但在应用程序级别,布尔值未更新。 – mhaseeb