Первая проблема заключается в том, что Time.now оценивается на уровне класса (когда файл читается Ruby) и не оценивается при использовании области (что, скорее всего, вы ожидаете).В этом случае вам нужно обернуть генерацию условий в лямбду / процедуру.
named_scope :articles_to_display, lambda {
:conditions => ["articles.publish_at < (?)", Time.now]
}
Вторая проблема, вероятно, заключается в том, что вы хотите использовать Time.zone.now вместо Time.now, чтобы соблюдатьлокализованное время текущего запроса, а не системное время на сервере.
Вот что вы хотите получить:
named_scope :articles_to_display, lambda {
:conditions => ["articles.publish_at < (?)", Time.zone.now]
}