2012-08-16 117 views
0

我創建了一個帶有新聞模塊的簡單應用程序,並將新聞定義爲單獨的可掛載引擎(它也將用於其他項目)。我需要能夠將引擎的管理員和用戶部分安裝爲父應用程序的單獨路徑。現在我可以掛載整個引擎Rails引擎單獨路由

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

,但我想在父應用程序爲/news用戶和/admin/news爲管理員管理和用戶線路分開。這可能嗎?

回答

0

我認爲這取決於你爲什麼要這麼做:

  1. 如果您想保留用戶和管理員在新聞寶石獨立的代碼 - 那麼你可能要隔離2名的命名空間,然後安裝其中的每一個 - 這可能涉及將它們分別作爲單獨的引擎。

  2. 如果你想要的是(這是我認爲你的意思?)是讓代碼在新聞引擎中共享,但在主應用程序中的2個不同網址上訪問,基於用戶是否是純文本用戶還是管理員?我會做什麼在這種情況下是這樣的:在發動機的路線

在主應用程序

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/newsapp/admin/news

我希望有幫助,我不太瞭解做條件路由。

然而,這裏是路由一個很好的指南:http://guides.rubyonrails.org/routing.html

也許你可以試試一起安裝與動態路由發動機線的東西?

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

你在哪裏結束了Jnew ::路由引擎在任user/newsadmin/news?我從來沒有這樣做過,所以我不知道是否有可能,但是......也許呢?

讓我知道這是否有幫助:) 乾杯