這是錯誤的方式來做到這一點。 將數據集插入數據庫時應該生成顯示日期!在模型
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