我有一个使用 friendly_id
Gem 的 Rails 应用程序。
使用友好 ID 效果很好。
但是,在后台的某些路径中,我不想在 URI 中使用 Friendly ID slug,因为不可能使用与前端相同的范围。
例如我有一篇文章可以有多个版本。在前面的每个 blog 上,都会显示另一个文章版本。因此,我可以使用 @blog.articles.friendly.find(params[:id])
。然而,在后台,我有一些页面,人们可以在其中编辑这样一个版本,该版本不嵌套在博客下(因为版本可以使用表单更改博客)。因此,与早期版本具有相同 slug 的文章版本将无法访问。
我如何指示 friendly_id
和/或 Rails URL 助手不对这些路径使用 slug,而只使用旧的数字 ID?
最佳答案
在Article
模型中,为friendly_id
属性添加finders
选项
class Article < ActiveRecord::Base
...
friendly_id :name_of_article, :use => [:slugged, :finders]
...
end
在这种情况下,无论 params[:id]
是数字 id 还是 slugs,您仍然应该能够通过 Article.find(params[:id] )
。
不确定我是否正确理解了您的问题。希望对您有所帮助!
关于ruby-on-rails - Rails + 友好 ID : Have some paths use the numerical ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35535707/