鉴于使用设计管理的用户与“事物”之间的一对多关系,我的目标是绘制宁静的路线,如:
http://host/username
http://host/username/things
http://host/username/things/1
...
我知道Rails路由中有nested resources,但我无法弄清楚如何将它应用于通过设计创建和管理的通用用户模型。
答案 0 :(得分:13)
您可以使用scope
:
scope ":username", :as => "user" do
resources :things
end
在用户模型上将其与to_param
结合使用:
def to_param
username
end
您将拥有/username/things
等路线。但请注意,用户名不应包含任何点,正斜杠或标准URI字符。您可能想在parameterize
的末尾放一个username
以确保。
答案 1 :(得分:0)
您也可以使用resource :user, path: ':id' do ... end
另外,请不要忘记在用户模式中定义to_param
&在控制器中使用User.find_by_username(params[:id])
。