如何在rails中创建哈希URL?

问题描述:

我有一个产品控制器,让我来访问演出方法在通常的铁轨方式如何在rails中创建哈希URL?

product GET /products/:id(.:format)     products#show 

现在,我想对每一个产品,它可以在根访问的唯一的哈希网址路径例如 mydomain.com/24fe3455g

这样做的最好方法是什么?

最佳 菲利普

首先,您需要在您的routes.rb中定义匹配路线。既然它是一种“跌倒”,你通常会把它放在路线的尽头。看看导游如何定义:http://guides.rubyonrails.org/routing.html

,如果你想在你的应用程序而不是IDS始终使用该散列式的URL,你也将实现to_paramself.from_param方法模型:http://apidock.com/rails/ActiveRecord/Base/to_param

如果你喜欢一些工具支持,你也可以使用像friendly_id这样的宝石:http://rubydoc.info/github/norman/friendly_id/master/file/Guide.rdoc

+0

推荐的宝石很好,但我期望有很多产品。所以它可能会发生,我会有多个具有相同名称的项目,所以这会限制使用这个gem .. – dc10 2012-07-30 16:54:47

,你可以在数据库中存储的md5每一行 - 计算这个MD5为id+timestamp例如(如连接的字符串),然后让喜欢你的路线:

product GET /products/:hash(.:format)     products#show 

你也可以使用UUID进行代表独特ID