程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了将一组动态插值参数传递给 rails-i18n?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决将一组动态插值参数传递给 rails-i18n??

开发过程中遇到将一组动态插值参数传递给 rails-i18n?的问题如何解决?下面主要结合日常开发的经验,给出你关于将一组动态插值参数传递给 rails-i18n?的解决方法建议,希望对你解决将一组动态插值参数传递给 rails-i18n?有所启发或帮助;

我要升级到 Rails 6.1.3 和最新版本的 rails-i18n (1.8.9)。

我曾经能够像这样传递插值参数的散列:

I18n.with_locale(:en) do
  message = I18n.translate("foo",message_args.merge({default: ""}))
end

但这现在引发了:

ArgumentError (wrong number of arguments (given 2,expected 0..1)):

将它们作为参数传递 as described 工作正常:

I18n.with_locale(:en) do
  message = I18n.translate("foo",bar: "baz",default: "")
end

检查 gems translate 方法时,它似乎在版本之间发生了变化:

# 1.5.3
def translate(*args)
  ...
end

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

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

解决方法

由于翻译助手 (https://api.rubyonrails.org/classes/ActionView/Helpers/TranslationHelper.html) 中的 translate 方法接受关键字参数哈希,因此您需要使用双 splat 运算符 getattr(row,"email")。此答案中的更多信息:

https://stackoverflow.com/a/45338680

大佬总结

以上是大佬教程为你收集整理的将一组动态插值参数传递给 rails-i18n?全部内容,希望文章能够帮你解决将一组动态插值参数传递给 rails-i18n?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: