我在我的rails应用程序中使用了friendly_id gem,以创建漂亮干净的URL。它运作良好,但页面也可以通过记录ID获得。
示例:
我有'name'作为slug的记录。此记录的ID为1。
所以页面可以从2个网址获得:
domain.com/name
和
domain.com/1
我只想使用domain.com/name,所以我不希望从domain.com/1获得该页面。
有谁知道如何做到这一点?
答案 0 :(得分:7)
来自作者本人(Google是您的朋友;这是搜索friendly_id disable find id
时的最佳结果):https://github.com/norman/friendly_id/issues/146
什么版本的FriendlyId?
使用4.x,只需使用find_by_slug而不是find。
使用3.x你可以使用find_by_cached_slug,或检查找到的结果的friendly_id_status,如果使用友好ID以外的其他内容找到记录,则会引发错误。
无论哪种方式,您都需要使用上述替代方法替换find
的出现,以告知您的应用忽略:id
列。