我们如何获得Active Record来创建更复杂的ID,这些ID不仅仅是自然数(1,2,3 ......)。我不确定我是否应该使用数据库ID来识别对象,但我现在在生产中让它们像这样是非常不安全的。
答案 0 :(得分:1)
让我们假设你想要一个名为slug
的列使用名为Post
的对象。
slug
列before_create
模型中创建一个Post
方法,该方法会在保存记录之前生成唯一的slug
值。也许做一些检查以确保它是独一无二的Post.find_by(slug: id)
而非Post.find(id)
。 post_path(id: post.slug)
,以便它不会将id
放入网址。