我确信有一个简单的解决方案,但我似乎找不到它。
我想匹配以下动态用户名:
/users/dymanicUsername
这在routes.rb中看起来如何
感谢您的帮助。
最佳答案
阿利斯特
为此,只需覆盖模型中的 to_param 即可。例如:
#users.rb
def to_param
self.username
end
您很快就会遇到一些问题:
- 与现有路线冲突。例如,用户名不应该是"new",明白吗?
- 为了在 Controller 中获取用户,您应该在模型中创建一个方法(这就是我所做的,可能不是最好的解决方案),例如 self.find_for_controller(username)
- 您的用户名只能包含启用网址的字符(忘记重音符号、标点符号等...)。解决方案是使用第二个属性名称
username_urlized
,它当然应该是唯一的并且不与其他路由冲突
也许还有更多问题:)
此外,如果您想要 twitter (yoursite.com/dynamicUserName) 之类的内容,请在 paths.rb 中执行以下操作:
resources :users, :path=>'' do
关于ruby-on-rails - Ruby on Rails 路由匹配用户名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5611649/