如何在铁路线路中正确使用ur friendly / slug?

时间:2016-10-05 10:12:38

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-4 friendly-url

我有一张用脚手架生成的桌子, 像这样的东西

  

rails generate scaffold书名:string year:integer etc ...

只有管理员可以使用以下网址访问上表:

  

管理员/书籍/书-1
  管理/书籍/书-2

我使用friendlyid gem来生成slug值,我没有问题。

但是现在我需要公开访问页面并根据slug字符串查询书籍数据,我真的不知道如何让路由接受这样的URL:

public/book-1

目前我使用查询字符串:public?book_id=123 并获取如下参数:Book.where(:id=>params[book_id]) 我需要用slug方式改变它吗?

我试图将此添加到我的路线文件中,但仍然没有运气

# get 'public/:slug', to: 'public#detailed_book', as: 'slugged_post'

请咨询,请告诉我如何正确设置我的路线文件以及如何在控制器中获取参数。

1 个答案:

答案 0 :(得分:0)

您可以使用

获取记录
Book.friendly.find(params[:id])

希望有所帮助!