私はすでにルートファイルにネストされたリソースを設定する方法を知っています...問題は、オプションで同じペイロードを使用して行を減らす方法です。Railsルート、has_many、および任意でネストされたリソースサニティ?
私はBlogSite
と言います。 BlogSiteには多くのPosts
がありますが、多くはAuthors
と多くはDates
です。 (これは最良の例ではないかもしれませんが、私には負担してください)。 Post
でCRUD操作を行うに
、私は
/blog_sites/1/author/2/date/3/posts #all posts on site 1 from author 2 on date 3
/blog_sites/1/author/2/posts #all posts on site 1 from author 2
/blog_sites/1/date/3/posts #all posts on site 1 on date 3
/blog_sites/1/posts #all posts on site 1
/author/2/date/3/posts #all posts from author 2 on date 3
/author/2/posts #all posts from author 2
/date/3/posts #all posts from date 3
/posts #all posts
フィルタリングパラメータのいずれかがURLにオプションすることができるように使用することができるようにしたいです。私はあなたが
get (/blog_sites/:blog_id)(/author/:author_id)(/date/:date_id)/posts => "posts#index"
のようなものを使用することができます知っているが、私は、ネストされたリソースのルーティングを使用して、すべてのCRUDの利益を失いたくありません。現在、私はそれを動作させるために多くのルーティングを複製しなければならず、これを行うためのより良い方法を探しています:
resources :blog_sites do
resources :authors do
resources :dates do
resources :posts
end
resources :posts
end
resources :dates do
resources :posts
end
resources :posts
end
...など。それはすぐにかなり扱いにくい小柄を得ることができます。
routes.rb DRY
とsaneを維持しながら、オプションのparam URLをどのように維持できますか?
私は、次のリソースに、きれいに、各ライン上の条件にのparamsの全てを指定することができるように、私は、ネストされたスコープを使用するが、これは、私はそれを解決することになった正確にどのようにしました – coneybeare