При установке Rails Engine имя модуля не распознается - PullRequest
0 голосов
/ 12 июня 2019

У меня есть Rails Engine github_webhooks с модулем GithubWebhooks.

В движке у меня есть:

module GithubWebhooks
  class EventController < ApplicationController
    require 'octokit'
    client = Octokit::Client.new(GithubWebhooks.access_token)

    def destroy
       ...code here...
    end

  end
end

# pullrequest_controller.rb

и в lib / github_webhooks.rb,

require "github_webhooks/engine"

module GithubWebhooks
  mattr_accessor :access_token 
  mattr_accessor :base_url
end

# github_webhooks.rb

В приложении Rails должен быть файл инициализатора под /config, который позволяет пользователю ввести свой токен доступа OAuth (:access_token) и базовый URL-адрес от POST до (:base_url).

Когда я пытаюсь подключить Rails Engine к своему приложению (sample_app), я делаю следующее, что я понимаю как стандартная процедура:

Я помещаю эту строку в мой gemfile:

gem 'github_webhooks', git: 'https://github.com/path_to/my_repo'

# Gemfile

а потом в маршрутах пишу:

mount GithubWebhooks::Engine, at: "/github_webhooks"

# routes.rb

Я уже понял, как использовать переменные среды, поместив токен в файл .yml, а затем с помощью gitignore безопасно разрешить пользователям фиксировать свои изменения в своем приложении, не включая свой токен в коммит. Я смог убедиться, что с помощью ENV [] я мог получить токен по мере необходимости. Так что это не актуальная проблема. Что подводит меня к настоящей проблеме.

Rails, похоже, не распознает имя моего движка, потому что кажется, что строка в файле маршрутов вызывает проблему. Выдает ошибку

/ home / mschneider25 / .rvm / gems / ruby-2.6.1 / gems / bootsnap-1.4.4 / lib / bootsnap / load_path_cache / core_ext / active_support.rb: 79: в блоке в load_missing_constant: неинициализированная константа GithubWebhooks (NameError)

Я не совсем уверен, почему говорится, что GithubWebhooks не инициализирован; это название модуля в Engine. Чего мне не хватает, чтобы Rails распознал мой движок и модули внутри него?

1 Ответ

0 голосов
/ 13 июня 2019

Попробуйте потребовать драгоценный камень, набрав:

require 'github_webhooks'

в config/application.rb. Или

gem 'github_webhooks', git: 'https://github.com/path_to/my_repo', require: 'github_webhooks'

в вашем Gemfile.

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