ruby-on-rails - 我可以使用 .to_s( :long) in Postgres with a column type date on Heroku in rails?

标签 ruby-on-rails postgresql date heroku

我的联系人表上有一个日期类型的列(从注释中显示):

#  date_entered       :date(255)

这是在我的 sqlite3 数据库本地为我工作的代码行,但现在在 Heroku 中生成错误:

<%= contact.date_entered.to_s(:long) %>

我得到的错误是:

wrong number of arguments (1 for 0)

我删除了 :long 组件,它似乎可以工作,但现在,当然,看起来格式很糟糕。

我该如何解决这个问题?

最佳答案

使用

date.strftime('%m/%d/%Y')

用于日期格式化。

您还可以覆盖日期/时间的 to_s 方法以使用 I18n 本地化:

class Date
  def to_s format = :default
    I18n.l(self, :format => format)
  end
end

在这种情况下可以同时使用 :logn (:default, :short) 和 '%d %B, %Y' 格式。

更新: 如果您不传递任何参数,存储旧方法并调用它也是有意义的:

class Date
  alias :to_s :native_to_s

  def to_s format = nil
    format.nil? ? 
      self.native_to_s : 
      I18n.l(self, :format => format)
  end
end

关于ruby-on-rails - 我可以使用 .to_s( :long) in Postgres with a column type date on Heroku in rails?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3126434/

相关文章:

ruby-on-rails - 如何在 Postgres 数据库中存储正则表达式或搜索词并在 Rails Query 中进行评估?

java - XML 生成后的 JAXB 日期时间格式

css - Bootstrap - 修改折叠导航栏宽度阈值? (使用 gem )

postgresql - Postgres : Copying large subsets of data(10k+rows) from one schema to another for immediate use

sql - 连续付款的客户

postgresql - 将圆存储在 Postgres 几何字段中

Java:将日期 2011-Jan-01 转换为 dd-MM-yyyy 格式

mysql - 奇怪的数据库行为

ruby-on-rails - 数据保存两次 - Resque

ruby-on-rails - Solr 在一个单独的 docker 容器上,带有 sunspot-rails