使用Ruby on Rails 3的新路由系统,是否可以更改默认的:id参数

resources :users, :key => :username

提出以下路由

/users/new
/users/:username
/users/:username/edit
...etc

我这样问是因为尽管上面的例子很简单,但在我目前正在进行的项目中,这样做真的很有帮助.

是否有可能更改此参数?如果没有,是否有特殊原因说明原因?

推荐答案

如果我理解正确,你想要的是在你的url中有username而不是id,对吗?

可以通过覆盖模型中的to_param方法来实现这一点.你可以得到更多信息.

Ruby-on-rails相关问答推荐

带有data-turbo的rails`link_to‘未获得turbo_stream请求格式

Ruby on Rails 身份验证:设计注册不起作用

如何通过graphqlMutations 从rails销毁当前用户会话

Rails 7 - has_many_attached 在加载新附件时删除旧附件

向现有控制器添加操作(Ruby on Rails)

有没有办法在 Rails 3.1 中检测用户代理

如何为 Rails SimpleForm Select 框设置默认 Select 值

RSpec > 有没有办法用一个命令运行所有测试?

如何独立测试模型的回调方法?

Rails 引擎中的迁移?

如何在特定时区(最好是我的应用程序的默认时区,而不是 UTC)中创建新的 DateTime 对象?

Ruby on Rails 中的MySQL 服务器已经消失

使用 AJAX 向 Rails 发送 Authenticity Token 的正确方法

控制器 helper_method

在 Devise on Rails beta 3 中创建管理员用户

'respond_to' 格式语句中的 `:location => ...` 和 `head :ok` 是什么意思?

如何从另一个调用 Capistrano 任务?

在 Ruby on Rails 中的控制器中获取 URL 的锚部分

t.belongs_to 在迁移

RoR select_tag 默认值和选项