我点了一些客户个人资料,我希望他们的个人资料页面网址是他们的名字。
例如,有人打电话给John Doe,会有个人资料:
mydomain.com/profiles/johndoe
如果还有一个John Doe,那么我想让:
mydomain.com/profiles/johndoe1
mydomain.com/profiles/johndoe2
我已经在这里阅读了有关动态路线的信息
Rails Routing from the Outside In
但我无法弄清楚该怎么做。
谢谢。
答案 0 :(得分:4)
使用网址中的外卡,您可以完成任务。在config/routes.rb
put:
get '/profiles/:username', to: 'controller_name#action_name'
现在params[:username]
等于你的第一个例子中的“johndoe1”,而“johndoe2”等于你的第二个url例子。所以你可以在控制器中输入
def show
@user = User.find_by_username(params[:username])
end
它将使用基于用户名的数据库记录填充@user。
注意:显然,我对你的设置做了一些很大的假设,所以你不得不在这里和那里为你自己的个人情况调整一些东西,但这应该给你一个大概的想法。