首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将一组动态插值参数传递给rails-i18n?

将一组动态插值参数传递给rails-i18n?
EN

Stack Overflow用户
提问于 2021-03-15 16:59:48
回答 1查看 1.4K关注 0票数 3

我正在升级到Rails 6.1.3,以及它的最新版本rails-i18n (1.8.9)。

我以前能够传递这样的插值参数的散列:

代码语言:javascript
复制
I18n.with_locale(:en) do
  message = I18n.translate("foo", message_args.merge({default: ""}))
end

但这现在提出了:

代码语言:javascript
复制
ArgumentError (wrong number of arguments (given 2, expected 0..1)):

将它们作为参数传递( 如所述 )运行良好:

代码语言:javascript
复制
I18n.with_locale(:en) do
  message = I18n.translate("foo", bar: "baz", default: "")
end

在签出gems translate方法时,它似乎在不同版本之间发生了变化:

代码语言:javascript
复制
# 1.5.3
def translate(*args)
  ...
end

# 1.8.9
def translate(key = nil, throw: false, raise: false, locale: nil, **options)
  ...
end

谁知道我是如何重新获得传递一组动态插值参数的能力的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-15 18:57:27

由于翻译助手(https://api.rubyonrails.org/classes/ActionView/Helpers/TranslationHelper.html)中的翻译方法接受关键字参数哈希,所以您需要使用double splat操作符**。在这个答案中有更多信息:

https://stackoverflow.com/a/45338680

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66642344

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档