'app/helpers/transaction_helper.rb'フォルダからモジュールを使用しようとしています。 (これは、アプリケーションがapi_only
フラグを使用して、ヘルパーがデフォルトで生成またはロードされていないことに注意してください。)Rails 5 API - api_onlyフラグを使用したときのヘルパーの自動読み込みエラー
module TransactionHelper
module Generator
def self.code_alphanumeric(params)
end
end
end
私はこのエラーを得た:私が追加しようとしました
NameError: uninitialized constant TransactionHelper
をapplication.rbに次の行
config.autoload_paths + =%のW(#{config.root} /アプリ/ヘルパー)
require_relative 'boot'
require "rails"
# Pick the frameworks you want:
require "active_model/railtie"
require "active_job/railtie"
require "active_record/railtie"
require "action_controller/railtie"
require "action_mailer/railtie"
require "action_view/railtie"
require "action_cable/engine"
# require "sprockets/railtie"
require "rails/test_unit/railtie"
# Require the gems listed in Gemfile, including any gems
# you've limited to :test, :development, or :production.
Bundler.require(*Rails.groups)
module SistemaControleContasApi
class Application < Rails::Application
config.autoload_paths += %W(#{config.root}/app/helpers)
# Settings in config/environments/* take precedence over those specified here.
# Application configuration should go into files in config/initializers
# -- all .rb files in that directory are automatically loaded.
# Only loads a smaller set of middleware suitable for API only apps.
# Middleware like session, flash, cookies can be added back manually.
# Skip views, helpers and assets when generating a new resource.
config.api_only = true
end
end
しかし、これは動作しません。このファイルをapp/modelsディレクトリに配置しようとすると、この作業が行われます。しかし、これはヘルパーを配置するための適切なローカルではありません。
誰かが助けてくれますか?
_API mode_との戦いの代わりに、そのコードを/ lib/transaction_helper/generatorに移動して、そのディレクトリを 'autoload_paths'に追加してみてください。 – pdoherty926
'config.autoload_paths'を' config.eager_load_paths'に置き換えることができますか? – 31piy