我有一個TextsController,每個Text可以是不同的(固定)類型。使用動態前綴代替控制器名稱的Rails資源路由
比方說,我有一個「書」類型。我想創建一個資源路徑來顯示文本,我希望路由是這樣的:
/book/my-book
另一種類型,「手冊」來說,應該導致使用以下網址:
/manual/rtfm
嗯,我haveRTFM,我不能讓它工作,我認爲它應該工作的方式。
這是我已經試過:
scope '/:text_type' do
resources :texts, only: :show
end
rake routes
顯示我下面的路線規格:
text GET /:text_type/texts/:id(.:format) texts#show
我不知道爲什麼靜態「文本」段應該有?
所以,我想包括空path
選項:
scope '/:text_type', path: '' do
resources :texts, only: :show
end
不會改變什麼,我猜是因爲(from source)我的第一個參數scope
實際上覆蓋給予path
任何價值。
的唯一途徑設置這讓我什麼我要找的是這樣的:
scope '/:text_type' do
resources :texts, only: :show, path: ''
end
這似乎完全打敗scope
其目的是爲了「[適用範圍]一組路線爲給定的默認選項」。
爲何我的resources
調用爲什麼以前的任何形式實際上都不會覆蓋path
?
對我來說看起來像一個bug?
所以我應該提交一個錯誤報告,或者你會用f *手冊讓我頭疼嗎? ^^
那麼,文本類型的路徑前綴實際上純粹是SEO的語義,在內部文本類型之間沒有實現差異。 根據文檔*和*您提供的鏈接,作用域是將默認屬性應用於一組路徑的一種方式。他們在名稱空間示例中使用它,實際上,它將解決'namespace'的影響,該命名將導向嵌套在模塊中的控制器。 我可以在沒有範圍的情況下實現我想要的功能,但是我必須在每條路徑上重複我的路徑選項,重複範圍應該在這裏避免... – 2014-09-21 20:11:47
O.K.我以不同的方式提出這個問題:你期望像/ book/my-book或/ manual/rtfm這樣的路徑能夠返回嗎(我認爲它們是GET路線)? – 2014-09-22 07:23:28
嗯,我想顯示由「我的書」或「rtfm」slug/id標識的文本。 – 2014-09-22 16:16:18