Проблема с датой на основе отношений в Rails - PullRequest
0 голосов
/ 13 апреля 2011

Я строю отношения один-к-одному в рельсах с условием даты, что означает, что должен быть возвращен только сегодняшний заказ.

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

Допустим, на вчерашний день есть текущий заказ, но сегодня не должно быть никакого сегодняшнего заказа, потому что не существует заказа с датой, равной дате сегодняшнего дня.

Это происходит только тогда, когда я вызываю контроллер и получаю ответ json с этими данными. Если я пытаюсь воспроизвести это в консоли, он ведет себя правильно и дает мне nil в качестве значения сегодняшнего заказа. Моя среда - это развитие.

Еще одна любопытная вещь: после перезапуска сервера текущий порядок будет возвращен правильно, поэтому кажется, что есть что-то вроде активного кэширования. Может ли это быть?

1 Ответ

0 голосов
/ 13 апреля 2011

Лучший способ - загрузить запрос ассоциации, передав ему истинное значение :

# Example
@course_orders.todays_order(true)

Или вы можете попробовать обернуть запрос в этот тип блока:

ActiveRecord::Base.uncached do
  your query
end

или принудительно очистить кеш:

ActiveRecord::Base.query_cache.clear_query_cache
...