カテゴリ付きの文字列を格納する「カテゴリ」という名前の行を持つ投稿モデルがあります。ルートを変更して、"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 に答える