2016-01-17 122 views
0

我有問題。有沒有辦法允許幾個控制器不寫路由?

我在軌道4和紅寶石2,並試圖找到一種方法讓控制器不會對ROUTES

我tyring創造我的控制器內的幾個動作輸入幾次新

在這裏我對軌道4控制器:

class Managementbla::UserController < ApplicationController 
class Managementpoke::UserController < ApplicationController 
... 
class Managementmultiple::UserController < ApplicationController 

這裏我對軌線路4:

namespace :managementbla do 
    resources :user 
end 

namespace :managementpoke do 
    resources :user 
end 

... 

namespace :managementmultiple do 
    resources :user 
end 

上軌2.3 sintaxis是

map.connect ':controller/:action/:id' 
map.connect ':controller/:action/:id.:format' 

在軌道4,我發現這個:

match ':controller(/:action(/:id(.:format)))', via: [:get, :post] 
+0

因爲我有一個控制器和動作的幾個控制器,我還有另一個問題......編寫所有的控制器和動作是正確的編碼方式,對不對? –

+0

是什麼問題? –

+0

有沒有辦法允許幾個控制器不寫路由? –

回答

1

,你有500個控制器表明您的應用程序的設計嚴重問題的事實。無論你解決什麼問題,我真的懷疑擁有500個同名控制器是最好的解決方案。他們是否都執行如此巨大的不同任務,以至於需要500個不同的控制器?被迫猜測,我會說這些控制器都非常相似,他們所做的任何工作都可以並且應該由單個控制器來處理。

但是,如果您決定繼續使用500控制器的路徑,這並不難。看起來你可能已經忘記了routes.rb只是Ruby代碼。你能解決這個同樣的方式你會解決,需要在迭代在Ruby中一堆數字中的任何問題:

1.upto(500) do |n| 
    namespace :"management#{n}" do 
    resources :user 
    end 
end 

不這樣做,雖然。仔細看看你的500個控制器。有一個更好的解決方案。

+0

約旦,我的意思是500不完全具有相同的名稱,我寫了這樣做的例子,但不是相同的名稱。 –

+0

我知道這是antipatern,但我學到了一些新東西。 –

0

看起來你可能會通過使用路由參數或查詢字符串參數來簡化應用程序。

如果您在應用程序中確實需要這麼多路由,您可以考慮一個可以更高效地進行路由的框架。你可以看看羅達:http://roda.jeremyevans.net/why.html

他們聲稱路由算法的效率是O(log n),其中n是路由的數量。

相關問題