Rails基于与ID不同的东西进行路由

Chi*_*ins 13 ruby routes ruby-on-rails

因此,当我想查看用户个人资料时,目前我有/ users/1 /.Dunno这个问题有多简单或常见,我现在有点像Rails noob,但我怎样才能通过routes.rb将其更改为/ user/chiggins/chiggins是一个唯一的用户名?

非常感谢!

Sła*_*osz 15

您需要在User模型中覆盖to_param方法:

class User
  def to_param
   username
  end
end
Run Code Online (Sandbox Code Playgroud)

然后rails会自动使用它进行路由.见http://api.rubyonrails.org/classes/ActiveRecord/Base.html#method-i-to_param


som*_*aha 5

考虑的另一种可能性是friendly_id gem- https://github.com/norman/friendly_id