0
我们如何获得活动记录来创建更多不仅仅是自然数(1,2,3 ...)的复杂ID。我不确定我是否应该使用数据库ID来识别对象,但是现在,在生产中让他们这样做会非常不安全。更强大的活动记录ID
我们如何获得活动记录来创建更多不仅仅是自然数(1,2,3 ...)的复杂ID。我不确定我是否应该使用数据库ID来识别对象,但是现在,在生产中让他们这样做会非常不安全。更强大的活动记录ID
让我们只是说你想要使用一个名为slug
的列作为名为Post
的对象。
Post
模型before_create
方法,将保存记录之前,生成唯一slug
值创建slug
列。也许做一些检查,以确保它是唯一的Post.find_by(slug: id)
而不是Post.find(id)
。post_path(id: post.slug)
,这样它就不会把id
的URL。
也许像'slug'会有帮助吗?您可以继续使用'id'作为主键,但对于其他所有内容使用另一列。所以,你们所要做的只是产生一个独特的'slug'来识别这个对象,并停止使用'id'来公开所有的东西。 – amree
@amree所以一个slu basically基本上映射到一个ID号码?如果你不介意,你能提供一个例子吗? – Carpetfizz
你是什么意思“相当不安全”? –