0

ニュースモジュールを使用して簡単なアプリケーションを作成し、ニュースを個別のマウント可能なエンジンとして定義しました(他のプロジェクトでも使用されます)。エンジンの管理者部分とユーザー部分を親アプリケーションに別々のルートとしてマウントする機能が必要です。これで、エンジン全体を次のようにマウントできます

Rails.application.routes.draw do
     mount Jnews::Engine => "/news"
end

/newsしかし、ユーザーと管理者の場合と同様に、親アプリで管理者ルートとユーザールートを分離したいと思います/admin/news。これは可能ですか?

4

1 に答える 1

0

なぜこれをしたいかによると思います:

  1. ニュース gem でユーザーと管理者を別のコードとして保持したい場合は、おそらく 2 つの名前空間を分離してから、それぞれをマウントする必要があります。

  2. あなたが望むのは(そしてこれがあなたの言いたいことだと思いますか?)ニュースエンジンでコードを共有し、ユーザーがプレーンユーザーか管理者かに基づいてメインアプリケーションの2つの異なるURLでアクセスすることですか?その場合に私がすることは、次のようなものです。

メインアプリケーションで

Rails.application.routes.draw do
   mount Jnews::Engine => "/app"
end

エンジンルートで

Jnews::Engine.routes.draw do
    match "/news", :to => "some_controller#some_action"
    match "/admin/news", :to => "some_controller#some_action"
end

次に、メインアプリケーションで、ユーザーが何であるか (ユーザーまたは管理者) に基づいて、またはいずれapp/newsかにリダイレクトできます。app/admin/news

条件付きルーティングの実行についてはよくわかりません。

ただし、ルーティングに関する非常に優れたガイドは次のとおりです: http://guides.rubyonrails.org/routing.html

動的ルーティングを使用してエンジンをマウントする方法に沿って何かを試すことができるでしょうか?

mount Jnews::Engine => ":user_id/news"

どちらかでルーティングされた Jnew::Engine で終わる場所user/newsadmin/news? 私は実際にそれをしたことがないので、それが可能かどうかはわかりませんが..多分?

これが役立つかどうか教えてください:)乾杯

于 2012-08-24T21:53:51.240 に答える