2012-02-04 27 views
1

我有一個padrino項目。padrino:子應用程序和具有相同名稱的控制器產生多餘的url

我創建了一個名爲「users」的子應用程序。

我也有一個叫做用戶的模型和一個叫用戶來處理路由的控制器。

Users.controllers :users do 

有這個問題是正在生產的網址,並進行響應的是

app.com/users/users/index

,除非我去每個動作和它的地圖

get :index, :map => '/' do 

有沒有更好的方式做到這一點?

我真的不想把這些行爲放在應用程序的app.rb中,儘管這很有效。我喜歡分離。

有沒有像

Users.controllers :users do 
    map '/' 
end 

不到什麼意思,我可以按照創建一個默認控制器會響應我的應用程序根URL的命名約定?

我想保持它在用戶控制器,這樣我可以使用捆綁包括users_index等

寶石:

activemodel (3.2.1) 
activerecord (3.2.1) 
activesupport (3.2.1) 
arel (3.0.0) 
bcrypt-ruby (3.0.1) 
builder (3.0.0) 
bundler (1.0.21) 
haml (3.1.4) 
http_router (0.10.2) 
i18n (0.6.0) 
mail (2.3.0) 
mime-types (1.17.2) 
multi_json (1.0.4) 
padrino (0.10.6.c) 
padrino-admin (0.10.6.c) 
padrino-cache (0.10.6.c) 
padrino-core (0.10.6.c) 
padrino-gen (0.10.6.c) 
padrino-helpers (0.10.6.c) 
padrino-mailer (0.10.6.c) 
polyglot (0.3.3) 
rack (1.4.1) 
rack-protection (1.2.0) 
rack-test (0.6.1) 
rake (0.9.2.2) 
sass (3.1.13) 
shoulda (2.11.3) 
sinatra (1.3.2) 
sinatra-flash (0.3.0) 
sqlite3 (1.3.5) 
thor (0.14.6) 
tilt (1.3.3) 
treetop (1.4.10) 
tzinfo (0.3.31) 
url_mount (0.2.1) 

如果非要映射每個動作的路徑在控制器中,當我的應用名稱與我的控制器名稱相匹配時,沒關係。我只是想知道是否有一種方法可以通過控制器設置我的所有操作的基礎或根路徑。

感謝

回答

0
#padrino-core-0.10.6.c/lib/padrino-core/application/routing.rb 

#around line 655 
#method parse_route 

#right after unless controller.empty? i added the following which works in my case 

    if controller.last.downcase == app_name.downcase and map.blank? 
    controller = controller.slice(0, -2) unless controller.length == 1 
    controller_path = controller.join("/") 
    path.gsub!(%r{^\(/\)|/\?}, "") 
    map = File.join(controller_path, path) 
end 

所以,現在如果我有一個應用程序調用用戶和控制器,被叫用戶處理路線,我只能說/或用戶/用戶/新等,而不是/用戶/用戶/新。

再一次,我對此很新,所以我不知道這是否是處理這個問題的最佳方法。我可以在每條路線上手動設置地圖,但那會很煩人。

我希望DAddYE可以在這方面減輕壓力並提供更好的建議。

0

您可以直接使用:

get "/" do 
end 

您可以發佈您bundle show

最後你可以嘗試使用gem padrino, '0.10.6.c'

+0

我更新了原始文章以包含您請求的信息。 – Mike 2012-02-04 16:22:55

+0

我試過 get'/ new'do ... 結束 但是,我仍然最終需要使用/用戶/用戶/新 除非我映射它。 得到:new,:map =>'/ new'do works – Mike 2012-02-04 16:26:45

相關問題