创建动态URL和路由

时间:2014-09-30 22:08:54

标签: ruby-on-rails

我点了一些客户个人资料,我希望他们的个人资料页面网址是他们的名字。

例如,有人打电话给John Doe,会有个人资料:

mydomain.com/profiles/johndoe

如果还有一个John Doe,那么我想让:

mydomain.com/profiles/johndoe1

mydomain.com/profiles/johndoe2

我已经在这里阅读了有关动态路线的信息

Rails Routing from the Outside In

但我无法弄清楚该怎么做。

谢谢。

1 个答案:

答案 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。

注意:显然,我对你的设置做了一些很大的假设,所以你不得不在这里和那里为你自己的个人情况调整一些东西,但这应该给你一个大概的想法。