Rails undefined方法`strftime’代表“2013-03-06”:String
我收到了错误
undefined方法`strftime’代表“2013-03-06”:String
尝试使用strftime从字符串2013-03-06正常显示日期(2013年6月3日星期日或类似的东西)。
在我的index.html.erb中执行此操作的行看起来像这样
我只是在学习Rails,所以我确信这只是一个愚蠢的初学者错误,任何帮助将不胜感激。 谢谢
当strftime是Time / Date类的方法时,看起来你的duedate是一个字符串。 你可以试试这个:
Date.parse(task.duedate).strftime("%B %e, %Y")
这解决了我的问题:
Date.created_at.try(:strftime, ("%B %e, %Y"))
希望这可以帮助!
您将日期时间存储为字符串而不是实际日期时间。 您需要创建一个新的迁移,如下所示
change_table :tasks do |t| t.change :duedate, :datetime end
这样,当您访问duedate时,它已经被解析为datetime对象,而不是每次都必须转换它。
你也可以使用strptime。 它对我有用:)
DateTime.strptime(task.duedate ,"%B %e, %Y")