Как автоматически загружать классы для использования в контроллере - PullRequest
0 голосов
/ 24 января 2019

У меня есть класс в libs и я пытаюсь использовать его в контроллере. Однако я не могу получить к нему доступ. Я пытался использовать функцию автозагрузки, но она не работает, и она не должна работать в rails 5 в производственном режиме, поэтому я думаю, что мне не нужно пробовать это .. Я также пытался потребовать ее в моем контроллер, но я не понимаю правильный синтаксис, я думаю. Мне также интересно, где поставить свой класс, так как я прочитал несколько разных мнений ..

config/application.rb
 require_relative 'boot'

 require 'rails/all'

 # Require the gems listed in Gemfile, including any gems
 # you've limited to :test, :development, or :production.
 Bundler.require(*Rails.groups)

 module Qipmatedevel
   class Application < Rails::Application
     # Initialize configuration defaults for originally generated Rails version.
     config.load_defaults 5.1
     config.active_job.queue_adapter = :sidekiq
     config.autoload_paths += %W(#{config.root}/lib)
     # 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.
   end
 end

app/controller/imports_controller
class ImportsController < ApplicationController

  require 'lib/class_qip'

Ответы [ 2 ]

0 голосов
/ 24 января 2019

добавление

  require './lib/class_qip.rb'

исправлено

0 голосов
/ 24 января 2019

Поместите ваши классы только в каталог lib и загрузите как,

config.eager_load_paths << Rails.root.join('lib')

Работает как в среде разработки, так и в сфере производства.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...