我使用簡單的支架,以創建用戶如何使用/ users/1作爲/ users/john-doe在rails中?
rails g scaffold user fname:string lname:string
,當我創建的用戶,它正在創建爲/用戶/ 1 /用戶/ 2等,我想知道如何使用戶以users/fname-lname?
有沒有rails gem可以做到這一點?
我使用簡單的支架,以創建用戶如何使用/ users/1作爲/ users/john-doe在rails中?
rails g scaffold user fname:string lname:string
,當我創建的用戶,它正在創建爲/用戶/ 1 /用戶/ 2等,我想知道如何使用戶以users/fname-lname?
有沒有rails gem可以做到這一點?
你在找什麼創建一個slug
。
FriendlyID是這樣做的寶石。還有一個關於如何使用它的Railscast插曲! Railscast link
您還可以定義,在您的的routes.rb文件,像這樣:
match "users/:fname-:lname/:action", :controller => "users"
但是,當你要訪問您的ressources你必須通過FNAME和LNAME參數。
不推薦像這樣的野路匹配器。 – pedromtavares
你能解釋我爲什麼嗎?我在這裏找到了這個:http://guides.rubyonrails.org/routing.html#dynamic-segments,並且他們不會警告它不被推薦。 – nmeylan
Rails指南在那裏解釋什麼是可能的,它是文檔。你應該或不應該做的事情被稱爲最佳實踐,那些沒有在那裏列出。使用通配符捕獲所有這樣的路由只適用於沒有其他選項的情況,這裏不是這種情況。 – pedromtavares