是否可以创建一列或更改一列以使用默认格式键入日期?就像是:
def change
change_column :mytable, :mydate, :date [:default]="%d/%m/%Y"
end
是否可以创建一列或更改一列以使用默认格式键入日期?就像是:
def change
change_column :mytable, :mydate, :date [:default]="%d/%m/%Y"
end
据我所知没有。但是你到底为什么要这样做呢?
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
,那你就做错了。再次,坚持默认格式。