修复 rails 6.1 上 ruby 中国际化语言环境后缀的弃用警告

Fix deprecation warning for an internationalization locale suffix in ruby on rails 6.1

在控制器中,我正在呈现一个页面并使用 locale_suffix 提供国际化信息。例如

def create
      ...
      render "new#{locale_suffix}"
end

法国的典型 local_suffix 可能是 'fr',因此它会呈现 new.fr。升级到 rails 6.1.2.4,我看到以下弃用警告

DEPRECATION WARNING: Rendering actions with '.' in the name is deprecated: clubs/new.fr

如何修复此警告?

根据max对问题的评论,你可以把controller action改成

def create
      ...
      render new:, variants: local_suffix
end

您可能还想将文件名从“new.fr.html.erb”更改为 'new+fr.html.erb',因为该位置的点可能会导致歧义。