如何在rails上的ruby中创建像launchrock这样的推荐链接?

时间:2011-04-05 12:15:35

标签: ruby-on-rails ruby-on-rails-3 routes

我想创建像。

这样的引荐链接
www.abc.com/1234
www.abc.com/4345

其中number是推荐代码,对每个用户而言都是唯一的。我确信这可以在带有一些路由配置的rails上的ruby中完成。表示请求将被路由的方式。哪个控制器?哪个动作?如何获得唯一代码的价值。

ps:launchrock正在使用这样的引荐链接。

2 个答案:

答案 0 :(得分:2)

您可以将此结构与路线匹配结合使用,但您需要使引荐代码与特定模式匹配。例如,如果它们匹配3个字母后跟三个数字的格式,您可以将以下路线文件放在:

match '/:referrer_id' => 'app#index', :constraints => {:referrer_id => /[a-zA-Z]{3}[0-9]{3}/}

对app#index的引用应更改为处理引用的控制器,您可以通过params [:referrer_id]访问referrer_id。

当然,请查看Markus回答中引用的链接,了解有关如何生成令牌的建议。

答案 1 :(得分:1)

我的书签中有关于令牌生成的链接:http://blog.logeek.fr/2009/7/2/creating-small-unique-tokens-in-ruby

在您的应用程序中,您需要将各个令牌存储在用户表中。控制器和操作取决于您和您可以使用www.abc.com/referral?123456之类的路线。

routes.rb
match "/referral/:ref" => "controller#action"

access in controller with:
params[:ref]