1

我正在使用friendly_idrails 4 中的 gem 为我的用户的产品列表制作漂亮的 url。它通过覆盖to_param. 现在它在Shop命名空间中运行良好,这是我网站的面向公众的部分,但是在Admin命名空间中我宁愿使用常规 id,因为我不需要它们,我宁愿 url 更短。

我认为这很容易,但在挖掘之后它实际上似乎有些复杂。,to_param因为它是模型的一部分,所以对它被调用的控制器没有真正的概念。所以我看到的唯一选择是覆盖url_for,以便它idAdmin命名空间中使用。我不知道该怎么做,如果这真的是最好的粗暴行动,因为搞砸url_for似乎有点危险。

4

2 回答 2

1

使用 FriendlyId5,默认情况下不会覆盖查找器。

friendly_id :foo, use: :slugged # you must do MyClass.friendly.find('bar')
# or...
friendly_id :foo, use: [:slugged, :finders] # you can now do MyClass.find('bar')

这样,我猜您可以使用第一个选项,具体取决于命名空间调用 MyClass.friendly.find('params[:id]')MyClass.find('params[:id]')

于 2013-11-07T10:54:30.847 回答
-1

You might want to use friendly_id in case if you do not want to mess with to_params. It is easier to implement to make excellent friendly urls that are both machine and human friendly http://kapilrajnakhwa.com/blogs/user-friendly-urls-with-friendly_id-gem-in-rails-4

于 2013-11-07T10:37:42.433 回答