[前][次][番号順一覧][スレッド一覧]

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...        ]