我的联系人表上有一个日期类型的列(从注释中显示):
# 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/