0

我有一个 rake 任务,它在部署时运行以生成service_worker.js文件。有一个ServiceWorkerController目的:

应用程序/控制器/service_worker_controller.rb

class ServiceWorkerController < ActionController::Base
  def service_worker
  end
end

app/views/service_worker.js.erb(简化版)

'use strict';

const offlinePages = [
  '<%= root_path %>'
]

lib/tasks/statics.rake(简化版)

namespace :statics do

  desc "Generate static files."
  task :create => :environment do
    I18n.locale = :en
    File.open(Rails.root.join('service_worker.js'), 'w') do |f|
      f.write ServiceWorkerController.render(:service_worker)
    end
  end

end

在最新的 Rails 6.0 之前运行rails statics:create正常,但是,在升级到最新的 Rails 6.1 后,root_path视图中的 会导致以下异常:

ActionView::Template::Error: 参数数量错误(给定 4,预期 0..1)/home/rails/app/views/service_worker/service_worker.js.erb:4:in `_app_views_service_worker_service_worker_js_erb__1965251932277058399_91060'

从 Rails 6.0 到 6.1 的任何想法都可以解释这一点吗?

更新忘了提到ServiceWorkerController.render(:service_worker)在 Rails 控制台中工作得很好,显然,尽管 .rake 任务的上下文中缺少一些东西task :create => :environment

4

0 回答 0