我发布了一个名为'category'的行的模型,它存储了带有类别的字符串。我想改变我的路线,如果我进入"blog"
类别,那么它会显示如下地址:mysite.com/blog/1
或者如果我的帖子类别为"portfolio"
,它会显示我的帖子地址喜欢mysite.com/portfolio/2
等。是否可以不制作另一张表并存储类别?我正在考虑一些路线if
声明,但此刻无法弄清楚它有什么。任何帮助将不胜感激。
答案 0 :(得分:1)
我认为你可以这样做!
CATEGORIES = %w[portfolio blog sites]
CATEGORIES.each do |cat|
get cat + '/:id', controller: 'post', action: 'show'
end
或者使用范围:
CATEGORIES = %w[portfolio blog sites]
CATEGORIES.each do |cat|
scope cat do
get '/:id', controller: 'post', action: 'show'
end
end
答案 1 :(得分:1)
为什么不用
抓住它们match ':category/:id' => 'posts#show'
然后,您可以按控制器中:category
哈希中的params
值进行过滤。
@post = Post.where category: params[:category], id: params[:id]