非常にハックなものを含まない解決策をまだ見つけていません。
問題: Rails アプリケーションは名前空間を使用して、親コントローラーとモデルの動作をオーバーライドしています (STI を使用)。ブログの命名法では、次のようなものです。
blog
posts
admin
blog <- blog
posts <- blog::posts
orders <- blog::posts
namespace2
blog <- blog
posts <- blog::posts
comments <- blog::posts
awesome_comments <- blog::posts
これはより単純な例ですが、各名前空間は、検証、動作、およびその子である STI オブジェクトをオーバーライドします。親はリフレクションを使用して、子に対応するユーザー ボタンを提供します。これには polymorphic_url を使用する必要がありますが、レールには名前空間を共有するネストされたリソースを処理する非常に面白い方法があります
これが好きです:namespace/blog/:id/namespace/posts、これでうまくいくと思います...巨大なURLが必要な場合。
私は試した
scope :module => :namespace, :name_prefix => :namespace do
resources :blog do
resources :post
resources :comment
end
end
しかし... polymorphic_path はこれを取得していないようです...それは望んでいます:
namespace :namespace
resources :blog do
namespace :namespace
resources :comment
resources :post
end
end
end
DRYではないだけでなく、何か間違っているようです。
スコープを尊重する polymorphic_url のようなものはありますか?