如何在 rails 路线中正确使用你的友好 / 鼻涕虫?
how to use ur friendly / slug properly in rails routes?
我有一个 table 是我用脚手架生成的,
像这样
rails generate scaffold Book title:string year:integer etc...
只有管理员可以使用 url 访问 table 以上内容,例如:
admin/books/book-1
admin/books/book-2
我使用 friendlyid gem 生成 slug 值,我对此没有问题。
但现在我需要访问 public 中的一个页面并根据 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'
请指教,请告诉我如何正确设置我的路由文件以及如何在控制器中获取参数。
您可以使用
获取记录
Book.friendly.find(params[:id])
希望对您有所帮助!
我有一个 table 是我用脚手架生成的, 像这样
rails generate scaffold Book title:string year:integer etc...
只有管理员可以使用 url 访问 table 以上内容,例如:
admin/books/book-1
admin/books/book-2
我使用 friendlyid gem 生成 slug 值,我对此没有问题。
但现在我需要访问 public 中的一个页面并根据 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'
请指教,请告诉我如何正确设置我的路由文件以及如何在控制器中获取参数。
您可以使用
获取记录Book.friendly.find(params[:id])
希望对您有所帮助!