我Account
模式有以下兩個協會:在條件子句中的ActiveRecord協會緩存日期值
has_many :expenses,
:order => 'expenses.dated_on DESC',
:dependent => :destroy
has_many :recent_expenses,
:class_name => 'Expense',
:conditions => "expenses.dated_on <= '#{Date.today}'",
:order => 'dated_on DESC',
:limit => 5
在我的觀點一個我最近渲染的費用,像這樣:
<% @account.recent_expenses.each do |expense| %>
...
<% end %>
在我開發機器,登臺服務器(運行在生產模式下)以及生產控制檯上,@account.recent_expenses
返回正確的列表。但是,在我們的實時生產服務器上,最新的費用不會返回。
如果我在視圖替換@account.recent_expenses
與@account.expenses
,最近的費用顯示,所以我的猜測是,條件子句#{Date.today}
部分以某種方式被緩存是第一次執行。如果我重新啓動生產Mongrel羣集,則所有最新費用都會正確返回。
任何人都可以想到爲什麼會發生這種情況,我如何更改:recent_expenses
查詢以防止這種情況發生?
我正在使用Rails 2.1.0。