Rails +友好ID:有一些路径使用数字ID

时间:2016-02-21 11:49:40

标签: ruby-on-rails url-routing friendly-id

我有一个使用friendly_id Gem。

的Rails应用程序

使用友好ID效果很好。

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

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

如何指示friendly_id和/或Rails URL帮助程序不将slug用于这些路径,而只是使用旧的数字ID?

1 个答案:

答案 0 :(得分:4)

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

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

在这种情况下,无论params[:id]是什么,数字ID还是slu ,,你仍然可以通过Article.find(params[:id])获得文章。

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