我试图解决这个问题几个小时但是在rails 4中找不到答案!有什么更好的方法来改变:id params到别的东西?我正在努力
resources :articles, param: :article_title
但它不起作用!我收到一条消息“无法找到没有ID的文章”...... 谢谢!
答案 0 :(得分:0)
您是否尝试让您的网址更像“/ articles / my-article-title”而不是“/ articles / 456”?有number of ways这样做,但最干净的方法是使用friendly_id gem。
答案 1 :(得分:0)
<强>路线强>
您正在尝试创建semantic URLs
这些基本上允许您在应用程序中包含slugs
,而不是Rails默认使用的标准id
设置:
-
<强>蛞蝓强>
设置此功能的诀窍是设置ActiveRecord .find
方法以查找比标准id
更多的列(这是默认值)
如Alex P
所述,您需要使用名为friendly_id
的gem。关于这个主题有一个很棒的RailsCast
:
这里的诀窍是承认您使用的routes
仍会将params[:id]
值传递给您的应用程序;这是你如何管理这个值的使用/处理
通常,您将使用.find
ActiveRecord方法查找id
的{{1}}值。 params[:id]
实际上对此进行了更改以搜索friendly_id
列 - 允许您使用slug
来查找slu ::
.find