在Rails 3中使用用户名绘制路径w/devise

lbz*_*lbz 4 routes ruby-on-rails devise ruby-on-rails-3

鉴于使用设计管理的用户与"事物"之间的一对多关系,我的目标是绘制如下的宁静路线:

http://host/username
http://host/username/things
http://host/username/things/1
...
Run Code Online (Sandbox Code Playgroud)

我知道Rails路由中的嵌套资源,但我无法弄清楚如何将它应用于通过设计创建和管理的通用用户模型.

Rya*_*igg 13

你可以使用scope这个:

scope ":username", :as => "user" do
  resources :things
end
Run Code Online (Sandbox Code Playgroud)

将此与to_param用户模型结合使用:

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

你会有像以下的路线/username/things.但请注意,用户名不应包含任何点,正斜杠或标准URI字符.你可能想parameterize在最后确定username一下.