0

私が必要としているのはルーティングです

resources :posts

しかし、すべての投稿オブジェクトが異なるカテゴリを持っていることを考慮すると (カテゴリはデータベース内の列であり、参照されるオブジェクトではありません!)、カテゴリは に保持されPage::CATEGORIESます。要するに、たとえば'www.example.com/posts/admin_posts'route intoが必要ですpost/index actionが、パラメーター'admin_posts'を使用してスコープで使用できるようにします。私が自分自身を明確にしたことを願っています:)私はこれ以上のアクションを望んでおらず、すべてのルートを個別に定義したくないことは間違いありません。それらはすべてPage::CATEGORIES. それを行う方法はありますか?

編集

本当に明確ではないので、この質問を編集しています

Post列カテゴリとすべてのカテゴリが に格納されたモデルを持つPost::CATEGORIES私の目標は、カテゴリごとにルートを持つことですが、すべてのルートがそれを同じ古いインデックス アクションに取り込むことです。

def index
    @posts = Post.by_category(category)
end

ここで、category はスコープの引数であり、ルートで指定された投稿のみを取得できます。たとえば、posts/stupid_posts は makecategory = "stupid_posts"になり、@postssudo_posts のみになります。本当に今は良くなることを願っています

4

3 に答える 3

0

私は実際にそれを逆にします。階層の観点からすると、投稿はカテゴリに属し、カテゴリは投稿に属しません (データベースでどのようにモデル化するかに関係なく)。したがって、次のルートを使用します。

scope ":category" do
  resources :posts, as: :category_posts
end

postsこれはコントローラーにルーティングされ、params[:category]各リクエストで利用可能になります。

コントローラー内で params[:category] ​​が実際に存在するかどうかを確認し、存在しない場合は 404 を返します。

于 2013-08-29T14:38:58.960 に答える