Rails + Friendly ID:让一些路径使用数字 ID

Rails + Friendly ID: Have some paths use the numerical ID

我有一个 Rails 应用程序使用 friendly_id Gem。

使用友好 ID 效果很好。

但是,后台中有一些路径我不想在 URI 中使用 Friendly ID slug,因为不可能使用与前端相同的范围。

例如我有一篇文章可以有多个版本。在前面的每个 blog 上,显示另一个文章版本。因此,我可以使用@blog.articles.friendly.find(params[:id])。然而,在后台,我有一些页面,人们可以在其中编辑这样一个版本,它 而不是 嵌套在博客下(因为版本可以使用表单更改博客)。因此,与早期版本具有相同 slug 的文章版本将无法访问。

我如何指示 friendly_id and/or Rails URL 帮助器不对这些路径使用 slug,而只使用旧的数字 ID?

Article 模型中,将 finders 选项添加到 friendly_id 属性

class Article < ActiveRecord::Base
  ...
  friendly_id :name_of_article, :use => [:slugged, :finders]
  ...
end

在这种情况下,无论 params[:id] 是数字 ID 还是 slug,您应该仍然可以通过 Article.find(params[:id]) 获取文章。

不确定我是否正确理解了你的问题。希望对您有所帮助!