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