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