我在我的应用程序中设置了一个pdf附件布尔标志,我的数据库显示它被设置为true
。但是当我的调试器加载并且我检查变量时,它总是显示false
。
这是我获取标志时生成的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
。我不知道它是从内存缓存中提取数据还是什么,但这对我来说非常麻烦。为什么内存和数据库值不同?任何帮助都会很棒!
答案 0 :(得分:1)
查询结果来自数据库查询缓存(从CACHE
调试消息中显而易见),而不是来自数据库。如果products
是某个其他记录的关联,那么您可能需要force a real query来自db的数据:
products(true).first.attached_pdf