簡體   English   中英

Ruby on Rails - 路由 - 在范圍內使用命名空間的適當情況?

[英]Ruby on Rails - Routing - Appropriate situations to use a namespace over a scope?

在我的應用程序中,我有一些導航項目是下拉菜單。 我唯一的限制是下拉菜單中的每個鏈接都應該以其所屬的菜單名稱為前綴的url路徑。 例如:

http://example.com/dropdown1/page1
http://example.com/dropdown1/page2
http://example.com/dropdown1/page3
http://example.com/dropdown2/page4
http://example.com/dropdown3/page5
http://example.com/dropdown3/page6

我知道在為這些頁面創建路線時我有兩個選擇。

  1. 使用范圍。 只有url路徑是作用域/前綴的。
  2. 使用命名空間。 除了作用域/前綴的url之外,控制器,視圖,模型和路徑助手也將被命名空間。

每個下拉列表中的頁面具有不同的獨立功能,但下拉列表中的每個功能都共享相同的類別。 命名空間這些功能或僅限定它們是否更有意義?

如果你唯一的限制是,在下拉菜單中每個環節必須有它的URL路徑與它所屬的菜單名稱為前綴 ,那么我的建議是只余地那些下拉路徑的路線

命名空間提供了更大程度的開箱即用,並且對於具有管理部分或API層的場景更有用,其中相同的資源根據其命名空間而表現不同。

范圍提供了更多控制,允許您指定應該命名的內容 - 在這種情況下,如果只有路由不同,那么您可以使用以下內容:

scope 'dropdown1' do
  # routing here
end

Rails指南很好地解釋了命名空間用法

最常見的是,您可以在Admin ::名稱空間下對許多管理控制器進行分組。 您可以將這些控制器放在app / controllers / admin目錄下,然后將它們組合在路由器中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM