1

カテゴリ付きの文字列を格納する「カテゴリ」という名前の行を持つ投稿モデルがあります。ルートを変更して、"blog"カテゴリに属している場合は次のようにアドレスを表示するmysite.com/blog/1か、投稿カテゴリが次のよう"portfolio"に投稿アドレスを表示するように変更したいと思いますmysite.com/portfolio/2。別のテーブルを作成してそこにカテゴリを保存しなくても可能ですか? ルートステートメントについて考えていますifが、現時点では何もわかりません。どんな助けでも大歓迎です。

4

2 に答える 2

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 に答える
1

それらをすべてキャッチしてみませんか

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

次に、コントローラーのハッシュの:category値でフィルター処理できます。params

@post = Post.where category: params[:category], id: params[:id]
于 2012-11-12T20:18:08.147 に答える