Rails 7 缺失部分

Alp*_*ico 12 ruby-on-rails ruby-on-rails-7

我正在升级到 Rails 7.1,并在使用 JS 部分的视图中遇到奇怪的错误:

缺少部分 account/_stripe.js.erb、application/_stripe.js.erb 和 {:locale=>[:fr], :formats=>[:html], :variants=>[], :handlers=>[:原始,:erb,:html,:builder,:ruby,:jbuilder]}。

这是我渲染部分的代码(它与 Rails 6 配合良好):

<%= render "stripe.js.erb" %>
Run Code Online (Sandbox Code Playgroud)

该部分与视图位于同一文件夹中,名为“_stripe.js.erb”。

我尝试按照建议将部分名称替换为 , account/stripe, account/stripe.js, account/stripe.js.erb, stripestripe.js但没有任何效果。

知道如何使用 Rails 7 解决这个问题吗?谢谢。

AbM*_*AbM 24

在 Rails 6.1 中不推荐使用部分名称中的扩展名,并在 Rails 7 中删除。您应该使用以下语法:

<%= render partial: 'stripe', formats: :js %>
Run Code Online (Sandbox Code Playgroud)

  • @JaredMenard 在此 [PR](https://github.com/rails/rails/pull/39164) 中介绍了它。不确定其他地方是否提到过。我在运行集成测试时遇到了弃用警告 (2认同)