Ruby on rails RubyonRails路由匹配用户名
我相信有一个简单的解决办法,但我似乎找不到 我想匹配以下动态用户名:Ruby on rails RubyonRails路由匹配用户名,ruby-on-rails,ruby,Ruby On Rails,Ruby,我相信有一个简单的解决办法,但我似乎找不到 我想匹配以下动态用户名: /users/dymanicUsername 这在routes.rb中会是什么样子 谢谢你的帮助。allister 要做到这一点,只需在模型中重写为_param。例如: #users.rb def to_param self.username end 您很快就会遇到一些问题: 与现有路线冲突。例如,用户名不应该是“新的”,明白吗 为了在控制器中获取您的用户,您应该在您的模型中创建一个方法(我就是这么做的,可能不是
/users/dymanicUsername
这在routes.rb中会是什么样子
谢谢你的帮助。allister
要做到这一点,只需在模型中重写为_param。例如:
#users.rb
def to_param
self.username
end
您很快就会遇到一些问题:
- 与现有路线冲突。例如,用户名不应该是“新的”,明白吗
- 为了在控制器中获取您的用户,您应该在您的模型中创建一个方法(我就是这么做的,可能不是最好的解决方案),就像这样
- 您的用户名应仅包含启用url的字符(忘记重音、字母等)。解决这个问题的一个方法是使用第二个属性names
,该属性当然应该是唯一的,并且不会与其他路由冲突username\u urlized
resources :users, :path=>'' do
以下是2006年对Rails 2.3的一个很好的解释。*: 我看到的主要问题是,您不仅要确保Marcel提到的上述所有内容,还要确保名称是唯一的。ie在迁移中使用
:unique=>true对名称进行索引
对于我刚刚升级到的rails3,您将以不同的方式进行路由。例如,map.connect
被match
取代,谢谢Marcel!它通过在模型中添加到_parm方法来工作。