1

レールの下にネストされた名前空間を持つエンジンを生成する方法が見つかりませんでした。これを行うたびに、基本的に、生成されたファイルを手動で編集および移動する必要があります。レールでネストされた名前空間は本当にサポートされていませんか? ありそうもない。

会社では、次のようにすべての名前空間に名前を付けています: CompanyName::ServiceName::Module

Service1 に取り組んでいるときに、カスタマー サポートが顧客の要求に応じてそのサービスのユーザーとデータを操作するために使用するアプリに統合されるエンジンを作成するとき、CompanyName の下にそのエンジンを作成したいと思います。 :サービス1::カスタマーサポート

ただし、Rails ではそれができないようです。

  • 使用rails plugin new a::b::blahは認められません:

    akovanm0:test avandra$ rails plugin new a::b::blah -T --dummy-path=spec/dummy --mountable --full --mountable

    Invalid plugin name a::b::blah. Please give a name which use only alphabetic or numeric or "_" characters.

  • 指定rails plugin new a/b/blahするとエンジンが生成されますが、出力はrails plugin new blah

  • 指定rails plugin new a_b_blahすると、名前空間ではなく、リテラル名 a_b_blah を持つエンジンが生成されます。(実際の名前は ABBlah にキャメルケース化されています)

私が達成したいのは、コントローラー、モデル、およびビューがa::b::blah名前空間で生成され、同じ方法でマウントできるエンジンです。生成されたすべてのコントローラを の下app/controllers/a/b/blahに、モデルを の下app/models/a/b/blahに、など...

これを達成する方法はありますか?

4

4 に答える 4

2

このようにマウント可能なオプションを有効にしてエンジンを作成する必要があります rails plugin new engine_name --mountableisolate_namespace EngineNameエンジンの名前空間を分離するために lib/engine_name/engine.rb にメソッド呼び出しを追加します。

于 2014-02-25T13:05:06.703 に答える
1

https://github.com/T-Dnzt/Modular-Engineを試すか、独自のジェネレーターを作成してください

于 2015-07-20T07:44:48.253 に答える