我有一个日期字符串:"2009-10-12“。我想写一个方法,它将this作为参数,并返回一周中三个字母的日期(在本例中为'mon')。我写了以下内容:
def date_to_day_of_week(date)
d = Date.parse(date).strftime("%a").downcase!
return d
end当我从脚本/控制台调用它时,它按预期工作。然而,当我在我的应用程序中调用它时,我得到了各种不同的错误,这取决于我所做的事情。主要的问题是,要么date_to_day_of_week是一个未定义的方法,要么如果我移动方法的内容(即内联day = Date.parse(date).strftime("%a").downcase!,那么我就会得到private method gsub! called for Mon, 12 Oct 2009:Date。我只是觉得我刚开始理解Ruby和Rails,然后我又回到了起点!
有人能帮上忙吗?
盖夫
发布于 2009-12-30 23:20:55
这段代码在哪里?例如,如果它在一个由控制器调用的模型中,你可能想要使用:
def self.date_to_day_of_week(date)
d = Date.parse(date).strftime("%a").downcase!
return d
end并使用以下命令在控制器中调用它:
def index
# ...
@date = Model.date_to_day_of_week("2009-12-30")
end发布于 2009-10-13 20:45:12
看看ActiveSupport::CoreExtensions::Date::Conversions.您可以定义自己的DATE_FORMATS并使用"to_formatted_s“将其输出。我相信你想要的缩写月份是"%b“
发布于 2009-10-13 13:51:12
如果你得到一个“未定义的方法”错误,那就意味着这个方法在被调用的时候是不可访问的。
如果您试图从帮助器调用该方法,则需要将该方法放在您的ApplicationHelper中,而不是ApplicationController中。如果您还想从您的控制器访问它,请在您的ApplicationController中输入以下内容:
helper_method :date_to_day_of_weekhttps://stackoverflow.com/questions/1559946
复制相似问题