ruby-on-rails - 在 Rails 3 w/devise 中使用用户名绘制路线

标签 ruby-on-rails routes devise ruby-on-rails-3

鉴于使用设计管理的用户与“事物”之间存在一对多关系,我的目标是绘制 Restful 路线,例如:

http://host/username
http://host/username/things
http://host/username/things/1
...

我知道 Rails 路由中的 nested resources,但我不知道如何将它应用于通过设计创建和管理的通用用户模型。

最佳答案

您可以为此使用 scope:

scope ":username", :as => "user" do
  resources :things
end

将此与用户模型上的 to_param 结合使用:
def to_param
  username
end

并且您将拥有诸如 /username/things 之类的路线。但请注意,用户名不应包含任何点、正斜杠或标准 URI 字符。您可能想在 parameterize 的末尾添加一个 username 以确保。

关于ruby-on-rails - 在 Rails 3 w/devise 中使用用户名绘制路线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4514533/

相关文章:

ruby-on-rails - 使用模块扩展带有 "has_many"的插件中的模型

ruby-on-rails - 如何在 Sidekiq 中查看 worker 的统计数据?

ruby-on-rails - 如何从 Rails 中的 url 猜测操作名称?

jquery - Backbone.js 和 JQuery 移动路由器

ruby-on-rails-3 - Rails 3 应用程序 : for oAuth-only sign-in using Facebook and Twitter, 我应该使用 Devise/OmniAuth 还是仅使用 OmniAuth?

ruby-on-rails - CanCan,仅限制具有特定标签的资源的查看操作

ruby-on-rails - 如何填充设计用户

css - 如何将 gem 中的样式表包含到主应用程序中?

ruby-on-rails - 如何解决 "Missing ` 环境的错误 'production' secret_key_base`(Rails 4.1)

node.js - 在 Express 上伪造 req.host 值