2

非常にハックなものを含まない解決策をまだ見つけていません。

問題: 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 のようなものはありますか?

4

0 に答える 0