将输入日期分配给变量

时间:2013-07-01 21:33:23

标签: ruby-on-rails ruby ruby-on-rails-3

我目前有一个通过API调用发出请求的应用,并返回数据。我创建了两个日期方法(请求使用这些日期作为参数),因此它总是调用上周的数据:

def self.monday
  d = Date.today
  seven_days_ago = (d - 7)
  seven_days_ago.beginning_of_week
end


def self.sunday
  d = Date.today
  seven_days_ago = (d - 7)
  seven_days_ago.end_of_week
end

我想使用这些星期一和星期日方法作为应用程序的默认值,但如果用户在表单中输入日期,这些方法将被输入的值覆盖。这些输入的值应该在用户浏览站点时保持不变,直到有新的会话,或者清除值(从而将方法恢复为默认值)。

如何创建一个不将日期保存到数据库的表单,只是覆盖上述两种方法中的默认日期?那些日期应该保持活跃状态​​,直到他们清除那个表格,或者他们开始​​新的会话?

1 个答案:

答案 0 :(得分:0)

def self.monday(options = {})
  if options[:date]
    return Date.parse(options[:date])
  else
    d = Date.today
    seven_days_ago = (d - 7)
    return seven_days_ago.beginning_of_week
end

将使用默认日期

whatever.monday()

将使用特定日期

whatever.monday(:date => '2013-07-01')