Rails: область видимости по умолчанию кэшируется кешем запросов? - PullRequest
3 голосов
/ 10 марта 2011

Я получил видимость по умолчанию, как эта, которая является динамической:

default_scope :conditions => ["departure_date >= ?", DateTime.current.beginning_of_day]

Когда я использую этот код, первый день в порядке.Допустим, первый день - 28-03-2011

Но на следующий день кажется, что он все еще использует "departure_date >= 28-03-2011"

Кэшируется ли моя область видимости по умолчанию?

1 Ответ

10 голосов
/ 10 марта 2011

Проблема в том, что этот код выполняется только один раз , когда ваше приложение загружено, и, следовательно, фактическая дата не меняется.Вам нужно изменить его, чтобы загрузить лениво:

default_scope lambda { { :conditions => ["departure_date >= ?", DateTime.current.beginning_of_day] } }

Таким образом, Datetime.current.beginning_of_day будет оцениваться каждый раз, когда вы делаете запрос.

...