Где создать экземпляр класса в рельсах - PullRequest
0 голосов
/ 28 октября 2019

Мне нужно использовать камень aws-sdk-comprehend в моей модели Metric, но я не уверен, что это нормально (в соответствии с соглашением о рельсах) для создания экземпляров вне класса, например:

comprehend = Aws::Comprehend::Client.new

class Metric < ApplicationRecord
  def key_phrases
    # Use comprehend object here.
  end
end

Есть ли эмпирическое правило в отношении этой ситуации? Я не хочу создавать экземпляр в key_phrases, потому что он будет создаваться каждый раз, когда я его вызываю.

1 Ответ

0 голосов
/ 28 октября 2019

Ответ уже был размещен в комментариях. Вот полный пример того, как это может выглядеть в идиоматическом Ruby:

class Metric < ApplicationRecord
  def key_phrases
    # Use comprehend object here.
    comprehend_client
  end

  private

  def comprehend_client
    @comprehend_client ||= Aws::Comprehend::Client.new
  end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...