i18n缺少插值参数

时间:2010-10-08 21:09:37

标签: ruby-on-rails internationalization

我在rails 2.3.5中开发了一个小型网站但是当我想在服务器上部署它时,我开始遇到一些问题。其中一个问题是插值问题。每当我想使用i18n格式化日期时,我都会遇到此异常: ActionView::TemplateError (missing interpolation argument in "%{count} %B %Y, %H:%M" ({:object=>Fri, 08 Oct 2010 20:18:17 UTC +00:00} given)) on line #10 of app/views/contact/archive.html.erb:

这是抛出此异常的代码: <strong><%= t :created_at %>:</strong> <%=l contact.created_at, :format => :long %> <br />

我看过谷歌,发现这与i18n插件(0.4.0)的更新有关,而且这个版本确实安装在服务器上。知道如何解决这个问题吗?因为我无法在任何地方找到答案。

亲切的问候,

大安

2 个答案:

答案 0 :(得分:2)

如果您使用的是i18n 0.4.0,则应将Rails升级到2.3.6+版本。有关详细信息,请查看http://github.com/svenfuchs/i18n/issues/issue/20

答案 1 :(得分:1)

此问题似乎只在您希望在格式化字符串中有一天时才会发生。如果你不能更新rails,绕过这个的唯一方法是创建你自己的格式,而不是通过在Date对象上调用.day方法获取日期并从ruby Time对象插入日期。所以在这种情况下,它将是例如:

contact.created_at.day.to_s + " " + l (contact.created_at, :format => "%b %H:%M" )