我有一個名爲'category'的行的post模型,它存儲了具有類別的字符串。我想改變我的路線,如果我進入"blog"
類別,那麼它將顯示如下地址:mysite.com/blog/1
或者如果我的帖子類別是"portfolio"
它會顯示我的帖子地址,如mysite.com/portfolio/2
等。是否有可能不製作另一個表和存儲類別?我正在考慮一些路線if
聲明,但目前無法弄清楚任何事情。任何幫助將不勝感激。'如果'路線中的語句
回答
我想你可以這樣做!
CATEGORIES = %w[portfolio blog sites]
CATEGORIES.each do |cat|
get cat + '/:id', controller: 'post', action: 'show'
end
或是帶瞄準鏡:
CATEGORIES = %w[portfolio blog sites]
CATEGORIES.each do |cat|
scope cat do
get '/:id', controller: 'post', action: 'show'
end
end
你爲什麼不只是趕上他們與
match ':category/:id' => 'posts#show'
然後,你可以通過:category
值在該params
散列過濾器控制器。
@post = Post.where category: params[:category], id: params[:id]
當我嘗試進入單個帖子的「show」視圖時,我現在正在爲[]:ActiveRecord :: Relation'錯誤獲取'undefined method'標題'。 (標題是帖子字段中的一個) – mrmnmly
btw。我沒有'index'視圖 - 我現在只需要'show'視圖,但不知道如何定義路徑中的鏈接以保留當前類別(它們正在從'mysite.com/portfolio /'更改爲'mysite.com/posts/1':/ – mrmnmly
這可能與你的代碼中其他地方有關,試着追蹤錯誤的來源,我會說錯誤信息可能會顯示麻煩的線路 – edgerunner
- 1. mysql - 如果select語句中的語句
- 2. 如果語句阻止Javascript的線程?
- 3. 如果Python中的語句
- 4. 多線程Bash如果語句
- 5. 如果迴路「然後」 Case語句的語句在SQL Server 2008中
- 6. 「如果」語句
- 7. 如果在Where子句中的語句
- 8. 如果WHERE子句中的語句
- 9. 如果在Python中的語句語法
- 10. 如果Clojure中else語句
- 11. 如果語句中有效
- 12. 如果語句在scala中的else語句中?
- 13. 如何在php中使用多個路徑如果語句
- 14. JavaScript新語句如果語句故障
- 15. 如果語句選擇開關語句
- 16. 如果parentViewContoller語句
- 17. 如果語句 - Powershell
- 18. SQL如果語句
- 19. 如果HTML語句
- 20. 如果if語句
- 21. 如果語句爲
- 22. ggplotly如果語句
- 23. Java:如果語句
- 24. 如果在語句
- 25. Python:如果語句
- 26. PHP如果語句
- 27. 如果語句String.equals()
- 28. MySql如果語句
- 29. jquery如果語句
- 30. 如果else語句
我不明白它將如何改變我的'後#視圖'路線? – mrmnmly
你必須改變行動到'視圖'。您也可以使用SOMEMODEL.all.each()來遍歷表。 – tritter