Rails friendly_id页面仍可通过记录ID获得

时间:2012-11-11 12:56:31

标签: ruby-on-rails ruby-on-rails-3 friendly-id

我在我的rails应用程序中使用了friendly_id gem,以创建漂亮干净的URL。它运作良好,但页面也可以通过记录ID获得。

示例:

我有'name'作为slug的记录。此记录的ID为1。

所以页面可以从2个网址获得:

domain.com/name

domain.com/1

我只想使用domain.com/name,所以我不希望从domain.com/1获得该页面。

有谁知道如何做到这一点?

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列。