rails:3948
From: Ayako Arakane <arakane@r...>
Date: Tue, 10 Dec 2013 14:16:13 +0900
Subject: [rails:3948] URLからcontroller名を省きたい
荒金と申します。 URLからcontroller名を省きたいのですが、 いい方法があれば教えて頂けないでしょうか。 具体的な内容は以下の通りです。 ----------------------------------------------------------------- 環境 ruby1.8.7 rails 2.3.16 下記のようなarticle_categoriesという 記事のカテゴリテーブルがあります。 id | category_url --------------- 1 | news 2 | school 3 | blog それに紐づくarticlesというテーブルがあります。 id | category_id | title ----------------------------- 1 | 1 | newsの記事1 2 | 2 | blogの記事1 3 | 3 | blogの記事2 4 | 4 | schoolの記事1 通常であればarticlesというcontrollerを使用して カテゴリに紐づく記事を表示する際は 下記のURLで対応できるかと思います。 localhost:3000/articles/:category_url/記事id 例) localhost:3000/articles/news/1 が、上記の「articles」の部分を省き 下記のURLでアクセスできるようにしたいのです。 localhost:3000/:category_url/記事id 例) localhost:3000/news/1 localhost:3000/school/4 localhost:3000/blog/3 →articlesのcontrollerが動作 ※ただしその他のcontrollerは今まで通り動作させたい localhost:3000/other/1 →other用のcontrollerが動作 article_categoriesは動的に管理したいので 記事カテゴリが増えるごとにroutes.rbに 追加していくことは避けたいと思っております。 現在下記2パターン調査していますが どちらもうまくいっていません。 �� application.controllerにて 「article_categories」に存在するかをチェックして 存在したらarticles.controllerに処理を渡せないか。 ※redirect_toだとURLが変わってしまうためNGです。 ※renderだとviewは渡せるのですが articles.controllerを経由する事ができませんでした。 �� routes.rbにて汎用的にできないか。 上記2パターン以外でもいいので 何か解決策はございますでしょうか。 宜しくお願いいたします。 -- ML: rails@r... 使い方: http://QuickML.com/
-> 3948 2013-12-10 06:16 [arakane@r... ] URLからcontroller名を省きたい 3949 2013-12-10 08:13 ┗[dezawa@a... ] 3950 2013-12-11 04:30 ┗[arakane@r... ]