Это неправильный способ сделать это.Вы должны сгенерировать дату показа при вставке набора данных в базу данных!Добавьте столбец с именем display_time
:
add_column :table_name, :display_time, :timestamp
Затем в модели добавьте attr_reader
и attr_accessor
для display_time_reader
attr_accessor :display_time_reader
attr_reader :display_time_reader
Затем определите display_time_reader=
Метод:
def display_time_reader=(days_before_start)
self.display_time=self.start_time-days_before_start.days
end
Затем вы добавляете text_field :display_time_reader
(Вы также можете воспользоваться раскрывающимся списком со значениями 7..21) к вашему _form.html.erb
, и при вводе 5 он сохранит start_date
-5 дней до поля display_time
.Тогда вы можете запросить:
ModelName.where("display_time > ?", Time.now)
Это был бы чистый способ решить эту проблему!