Неопределенный метод `call 'при попытке вызвать класс наследования - PullRequest
0 голосов
/ 04 марта 2020

У меня есть базовый класс с self.call методом:

module Jira
  class Base
    def self.call
      issue = client.Issue.build
      issue.save(required_fields)
    end

    private

    def client
      @client ||= Jira::JiraConnection.new.call
    end

    def required_fields; end
  end
end

, который должен вызываться в следующем классе:

module Jira
  module Support
    module AutoResolved
      class NewCollaborator < Jira::Base
        def required_fields
          {
            'fields' => {
              'summary' => 'Add <Github user> collaborator to <github_repo>',
              'description' => 'This is an automatic confirmation ticket'
              'project' => { 'key' => 'SUP' }
            }
          }
        end
      end
    end
  end
end

В консоли рельсов я пытался ::Jira::Support::AutoResolved::NewCollaborator.new.call но я получаю сообщение об ошибке:

NoMethodError: undefined method `call' for #<Jira::Support::AutoResolved::NewCollaborator:0x00007fbcc3b8abc8>

1 Ответ

2 голосов
/ 04 марта 2020

Метод вызова находится внутри класса c class / singleton class / ghost class. Удалите ключевое слово self из def, и оно должно работать

module Jira
  class Base
    def call
      issue = client.Issue.build
      issue.save(required_fields)
    end

    private

    def client
      @client ||= Jira::JiraConnection.new.call
    end

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