Rails 4更好的改变方法:url /:id params

时间:2014-06-27 05:45:00

标签: ruby-on-rails

我试图解决这个问题几个小时但是在rails 4中找不到答案!有什么更好的方法来改变:id params到别的东西?我正在努力

resources :articles, param: :article_title

但它不起作用!我收到一条消息“无法找到没有ID的文章”...... 谢谢!

2 个答案:

答案 0 :(得分:0)

您是否尝试让您的网址更像“/ articles / my-article-title”而不是“/ articles / 456”?有number of ways这样做,但最干净的方法是使用friendly_id gem

答案 1 :(得分:0)

<强>路线

您正在尝试创建semantic URLs

这些基本上允许您在应用程序中包含slugs,而不是Rails默认使用的标准id设置:

enter image description here

-

<强>蛞蝓

设置此功能的诀窍是设置ActiveRecord .find方法以查找比标准id更多的列(这是默认值)

Alex P所述,您需要使用名为friendly_id的gem。关于这个主题有一个很棒的RailsCast

enter image description here

这里的诀窍是承认您使用的routes仍会将params[:id]值传递给您的应用程序;这是你如何管理这个值的使用/处理

通常,您将使用.find ActiveRecord方法查找id的{​​{1}}值。 params[:id]实际上对此进行了更改以搜索friendly_id列 - 允许您使用slug来查找slu ::

.find