是否可以创建列或更改一列以使用默认格式键入日期? 类似的东西:
def change
change_column :mytable, :mydate, :date [:default]="%d/%m/%Y"
end
答案 0 :(得分:0)
据我所知没有。但是为什么你想在地球上做到这一点?
Rails将提取日期并自动使其成为日期/时间(根据您的列类型)对象。如果您需要以不同方式显示日期,我强烈建议使用strftime,如下所示:
@foo.created_at.strftime('%F')
以下是不同选项的列表:http://www.ruby-doc.org/core-1.9.3/Time.html#method-i-strftime
使用Draper的装饰器:https://github.com/drapergem/draper
我建议重命名该方法但是现在如果你不想这样做,你可以直接覆盖它:
# app/decorators/article_decorator.rb
class ArticleDecorator < Draper::Decorator
delegate_all
def published_at
source.published_at.strftime("%A, %B %e")
end
end
你会这样:
@article.decorate.published_at
在默认状态下,返回的日期不会被格式化,这很好。
如果你必须做where("date.strftime('%d/%m/%Y') >= ?",fdate
,那你做错了。再次,坚持默认格式。