Подтвердить что ты не робот

Обработка моделей пространства имен (классов) в пространстве имен

Я использую Ruby on Rails 3, и я хотел бы обрабатывать пространства имен моделей (классов) в пространствах имен. То есть, если у меня есть пространство имен NS1 и "под-пространство имен" этого пространства имен NS2, я хотел бы обрабатывать модели (классы) в NS2.

Если я запустил эшафот

rails generate scaffold ns1/ns2/Article id:integer title:string

он будет генерировать следующие файлы моделей:

models/ns1/ns2/article.rb file
models/ns1/articles.rb

models/ns1/articles.rb содержит:

module Ns1::Articles
  def self.table_name_prefix
    'ns1_articles_'
  end
end

Что такое models/ns1/articles.rb файл? Как и почему я могу это использовать? У вас есть советы об использовании этого?

И вообще, что такое "лучший" способ обработки "скомпонованных" классов в пространствах имен с использованием Ruby on Rails?

4b9b3361

Ответ 1

модели/ns1/articles.rb

в основном устанавливает префикс имени таблицы для всех классов модели в этом пространстве имен. Это его использование. Это более DRY'их делать там (в одном файле), а не устанавливать префикс в каждом классе модели в этом пространстве имен.

Я не большой поклонник использования пространств имен в своих моделях. Однако вы можете обратиться к следующим статьям, чтобы получить лучшее представление об использовании пространств имен в модулях.

Некоторые альтернативы использованию пространств имен в моделях

Надеюсь, что это поможет.