【发布时间】:2013-09-09 11:13:22
【问题描述】:
我一直通过在语言环境上调用 to_s 将语言环境转换为字符串。例如 I18n.locale.to_s 将返回 se 或 de。
但现在我注意到 I18n.locale.to_s 返回 ["se"] 或 ["de"]。它们变成数组了吗?它看起来有点像一个数组的符号。很奇怪,因为我在 :[:se] 上遇到语法错误。
这发生在我将 Debian 升级到 7 时,将 ruby 升级到 1.9。我的 Rails 版本是 3.2。
有没有办法从语言环境中获取字符串"se" 或类似的?当然,无需进行手动删除第一个和最后两个字符的明显和丑陋的黑客攻击。
【问题讨论】:
-
不,他们没有返回数组,这可能是您的应用程序出现问题
irb(main):001:0> I18n.locale.to_s => "en" -
我刚刚在 Ubuntu 13.04 中使用 Ruby 1.9.2 进行了测试,但无法复制。
.class返回什么?
标签: ruby-on-rails ruby arrays internationalization