我确信这有一个简单的解决方案,但我似乎无法找到它。
我想匹配以下动态用户名:
/users/dymanicUsername
在routes.rb中看起来如何?
感谢您的帮助。
答案 0 :(得分:5)
奥利斯特,
要做到这一点,只需覆盖模型中的to_param即可。例如:
#users.rb
def to_param
self.username
end
你很快就会遇到一些问题:
username_urlized
,当然应该是唯一的且不与其他路由冲突也许还有更多问题:)
此外,如果您需要twitter(yoursite.com/dynamicUserName)之类的内容,请在routes.rb中执行以下操作:
resources :users, :path=>'' do
答案 1 :(得分:1)
这是2006年的一个很好的解释,看起来很适合Rails 2.3。*: http://garrickvanburen.com/archive/using-names-in-rails-routes-instead-of-ids
我看到的主要问题是,您不仅要确保Marcel提到的所有上述内容,而且要确保名称是唯一的。即在迁移中使用:unique => true
在名称上添加索引。
对于我刚刚升级到的rails3,你会以不同的方式进行路由。例如,map.connect
替换为match
。