如果我有一個用戶模型,然後是個人用戶,比如說person1,有沒有辦法讓url:www.myapp.com/person1
顯示www.myapp.com/users/person1
會是什麼?那會叫什麼?Rails URL question
謝謝!
如果我有一個用戶模型,然後是個人用戶,比如說person1,有沒有辦法讓url:www.myapp.com/person1
顯示www.myapp.com/users/person1
會是什麼?那會叫什麼?Rails URL question
謝謝!
你應該在你routes.rb
文件中定義一個路線:
match "/:user" => "users#show"
,你會得到params[:user]
給出的用戶名。但是你需要知道這種路由可以覆蓋其他定義的路由,因爲它會匹配任何字符串,所以你至少應該在用戶名上定義一些約束。
例如,如果您的用戶名是正規表達式匹配,你可以把它定義爲一個約束
match "/:user" => "users#show", :constraints => { :user => /some-regexp/ }
,不要忘了設置這條路線作爲最後一個在你的路由文件,否則會發生衝突肯定與其他路線。
閱讀this完全參考
爲同一件事添加「兩條」路線到您的應用程序。
# Shorter url to show store items by tags
map.connect '/s/tags',
:controller => 'music',
:action => 'show_by_tags'
map.connect '/music/s/tags',
:controller => 'music',
:action => 'show_by_tags'
檢查'HTTP:// guides.rubyonrails.org/routing.html'另外,你的實現將是一個有點曖昧,例如,如果用戶有什麼有一個用戶名'users' ?或用戶名等於您的應用程序中的模型名稱之一? – user482594
太棒了,謝謝! – Connor