2011-04-13 26 views
0

我使用基於日期的條件在rails中構建了一對一關係,這意味着只應返回今天的順序。Rails中基於日期的關係問題

has_one :todays_order, :through => :patient_orders, :source => :daily_order ,:conditions => ["order_for_date = ?", Date.current] 

比方說,昨天有一個今天的秩序,但今天不應該有今天的訂單,因爲不存在等於今天的日期日期的順序。

這隻發生在我調用控制器並獲得包含該數據的json響應時。 如果我試圖重現控制檯內的行爲是正確的,並給我nil作爲今天訂單的價值。 我的環境是發展。

另一個好奇的是,服務器重新啓動後,今天的訂單將返回正確,所以似乎有像緩存活動。那可能嗎?

回答

0

最好的辦法是到load your association query passing it a true value

# Example 
@course_orders.todays_order(true) 

或者你可以嘗試包裹查詢在這類塊:

ActiveRecord::Base.uncached do 
    your query 
end 

或者迫使緩存清除:

ActiveRecord::Base.query_cache.clear_query_cache 
+0

當我呈現json時,我該怎麼做?例如'respond_with(@course_orders,:include =>:orders)' – LeonS 2011-04-13 07:43:07

+0

問題是生成@course_orders的查詢應該是以下內容:@ course_orders.todays_order(true) – tommasop 2011-04-13 07:48:35