web-dev-qa-db-ja.com

名前空間での名前空間モデル(クラス)の処理

Ruby on Rails 3を使用していて、名前空間内のモデル(クラス)名前空間を処理したい。つまり、 NS1 および NS2 という名前のその名前空間の「サブ名前空間」、でモデル(クラス)を処理したいNS2

scaffold を実行すると

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?を使用して名前空間で「構成された」クラスを処理するための「最良の」方法は何ですか?

33
user502052

models/ns1/articles.rb

基本的には、その名前空間の下にあるすべてのモデルクラスのテーブル名プレフィックスを設定しています。それはその使用法です。その名前空間の下にあるすべてのモデルクラスでプレフィックスを設定するのではなく、そこで(単一のファイルで)行う方がより乾燥しています。

モデルで名前空間を使用することはあまり好きではありません。ただし、次の記事を参照して、モジュールでの名前空間の使用について理解を深めることができます。

モデルで名前空間を使用する代わりのいくつかの方法

お役に立てれば。

30
thekindofme