Ruby on rails默认日期格式

时间:2013-02-02 16:51:02

标签: ruby-on-rails

是否可以创建列或更改一列以使用默认格式键入日期? 类似的东西:

def change
    change_column :mytable, :mydate, :date [:default]="%d/%m/%Y"
end

1 个答案:

答案 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,那你做错了。再次,坚持默认格式。