module ApplicationHelper
def t(*a)
translate(*a)
end
end
字符串
情况1:-t('views.home.welcome_updated', default: 'Updated')
=>获取错误:(参数数量错误(给定2,预期1))
情况2:-t('views.welcome')
=>工作正常
Ruby Version: 3.0.6
Rails Version: 6.1.7.6
型
上面的代码有什么问题?
在ruby 2.7中,case 1和case 2都可以正常工作。在ruby版本升级到3后,我遇到了错误。
自定义t方法,
module ApplicationHelper
def t(key, **options)
args = [key]
args.push options if options.present?
translate(*a)
end
end
型
但这也是行不通的
1条答案
按热度按时间wd2eg0qa1#
当你想转发所有参数时,不管它们的结构如何,你可以使用
...
syntax,像这样:字符串
或者,当不需要在转发到原始方法之前操作参数,或者在返回之前对响应进行操作时,可以像这样给方法名称别名:
型