这是错误的方式来做到这一点。 将数据集插入数据库时应该生成显示日期!在模型
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=
方法:添加一个名为display_time
列
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)
这将是一个干净的方式来处理这个问题!
感谢您的回复。我收到以下错误'未定义的方法'天为 “7”:String' – Elliot 2012-01-13 23:25:08
而不是'self.display_time = self.start_time-days_before_start.days'写'self.display_time = self.start_time-days_before_start.to_i。天' – davidb 2012-01-13 23:32:24
我现在看到这个错误:'当你没有想到它时,你有一个零对象! 您可能已经预期了Array的一个实例。 错误发生时,评估无' - – Elliot 2012-01-13 23:35:56