ruby-on-rails - Ruby on Rails 路由匹配用户名

标签 ruby-on-rails ruby

我确信有一个简单的解决方案,但我似乎找不到它。

我想匹配以下动态用户名:

 /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/

相关文章:

Ruby Gem 版本与 ruby​​ 版本不兼容

ruby-on-rails - 如何添加一个新的sidekiq进程?

ruby - 在 Ruby 中传递任意数量的 lambda(或 proc)

Ruby:代码片段:(num & 1) == 0 究竟做了什么?

ruby-on-rails - 从 ID 数组中获取所有 Rails 记录

哈希键的 Ruby 值?

ruby - Log4r 使用 yml 配置器 : The log message won't include trace

ruby-on-rails - 简单的电子邮件导致堆栈级别太深

ruby-on-rails - Rails 4.0.0 应用程序中 ActiveSupport 的未定义方法 `all'

mysql - 更新后的 ID 列仍然失败,并出现 RangeError