2016-04-25 49 views
1

我有一個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

回答

1

查詢結果取自數據庫查詢緩存(從CACHE調試消息中可以看出),而不是從數據庫中取得。如果products一些其他記錄關聯,那麼你可能需要從數據庫中的數據的force a real query

products(true).first.attached_pdf