1

我有一个名为“类别”的行的帖子模型,它存储带有类别的字符串。我想更改我的路线,如果我进入"blog"类别,那么它将显示如下地址:mysite.com/blog/1或者如果我的帖子类别将"portfolio"显示我的帖子地址等mysite.com/portfolio/2。是否可以不制作另一个表格并在那里存储类别?我正在考虑一些路线if声明,但目前无法弄清楚它的任何内容。任何帮助将不胜感激。

4

2 回答 2

1

你为什么不把它们全部抓住

match ':category/:id' => 'posts#show'

然后您可以按控制器中的哈希:category值进行过滤。params

@post = Post.where category: params[:category], id: params[:id]
于 2012-11-12T20:18:08.147 回答
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
于 2012-11-12T20:17:18.733 回答