2009-09-12 18 views

回答

2

爲了提高你生成的URL的數量,你還可以在用戶模型中添加一個to_param方法來得到類似於:

def to_param 
    "#{id}-#{username}" 
end 

map.users '/:id', :controller => 'users', :action => 'show' 

http://yourdomain.com/142-yaraher 

這樣,Rails仍然可以正常工作(通過在param [:id]上調用.to_i)並獲得更好的URL。

請記住,你應該從你使用的方法除去一些特殊字符,所以它應該是更可能是這樣的:

"#{id}-#{n.downcase.gsub(/[^a-z1-9]+/i, '-')}" 
+1

一種更好的方式來剝離不想要的字符是使用字符串#參數化方法。 「#{id} - #{username.parameterize}」 – erik 2009-09-12 22:27:53

+0

不錯的方法,以前沒有檢查過。它來自最新的Rails更新之一嗎? – Yaraher 2009-09-13 15:35:05

0

您需要定義在配置新的根/ routes.rb中像

map.user '/:id', :controller => 'users', :action => 'show' 

,然後實現顯示方法 - 你的用戶ID將在params[:id]

相關問題