Ruby 元编程日期 ".at_beginning_of_X"
Ruby metaprograming date ".at_beginning_of_X"
我有一个方法可以输出一种时间范围,它可以是以下任何一种:
["day", "week", "month"]
我如何定义一个输出如下内容的方法:
type = "day"
Date.today.at_beginning_of_type
其中type
可以是我上面提到的三种类型中的任何一种吗?
编辑: 虽然这是一个很小的方法,但这是我目前采用的方法:
def output_a_date
type = get_period_type
puts 'The date at the beginning of the "#{type}" ago was "#{Date.today.at_beginning_of_type}"'
end
def get_period_type
type = "day"
end
您想使用 send
方法。
您可以阅读更多相关信息here
您的代码可能如下所示:
def beginning_of(type)
Date.today.send(:"at_beginning_of_#{type}")
end
我有一个方法可以输出一种时间范围,它可以是以下任何一种:
["day", "week", "month"]
我如何定义一个输出如下内容的方法:
type = "day"
Date.today.at_beginning_of_type
其中type
可以是我上面提到的三种类型中的任何一种吗?
编辑: 虽然这是一个很小的方法,但这是我目前采用的方法:
def output_a_date
type = get_period_type
puts 'The date at the beginning of the "#{type}" ago was "#{Date.today.at_beginning_of_type}"'
end
def get_period_type
type = "day"
end
您想使用 send
方法。
您可以阅读更多相关信息here
您的代码可能如下所示:
def beginning_of(type)
Date.today.send(:"at_beginning_of_#{type}")
end