Пространства имен подпапок модели Rails - PullRequest
0 голосов
/ 01 апреля 2020

Если у меня есть подпапка models / crms с моделью

class class Crms::Document < ApplicationRecord
  self.table_name = "documents"
end

Это не разрешает ApplicationRecord, как в родительской папке. Так как мне ссылаться на класс в основной папке из подпапки, пожалуйста?

1 Ответ

1 голос
/ 02 апреля 2020

Правильный способ определить это:

# app/models/crms/document.rb
module Crms
  class Document < ::ApplicationRecord
    self.table_name = "documents"
  end
end

Вы пишете class class. И:

Определение (и повторное открытие) пространств имен и модулей с использованием явного вложения. Использование оператора разрешения области действия может привести к неожиданным постоянным поискам из-за лексической области видимости Ruby, которая зависит от вложенности модуля в точке определения.
- Руководство по стилю Ruby

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