ResourcefulParenting ==================== A rails plugin that makes working with nested resources easier. It provides the following methods to your RESTful controllers: * parent : Returns the most immediate parent resource * parent(-1) : Same as parent * parent(-2) : Returns the parent resource's parent * parent(N) : Returns the Nth parent resource * parent(0) : Returns the top level parent * parents : Returns an array of all the parent resources * polymorphic_p_url : Same as calling polymorphic_url but adding parents to the list * polymorphic_p_path : Same as calling polymorphic_path but adding parents to the list polymotphic_p_url and polymorphic_p_path are automatically exposed as helper methods for usage in the views. Feel free to expose the others via helper_method in your ApplicationController Installation ============ Add to your Gemfile: gem 'resourceful_parenting' Example ======= Assuming the classical problem of a comments resource nested under several different parent resources: class CommentsController < ApplicationController def create # regular create work, then: redirect_to parent # Back to the parent's show page # OR redirect_to polymorphic_p_url(@comment) # Back to /parents/ID/comments/ID # OR redirect_to polymorphic_p_url(:comments) # Back to /parents/ID/comments end end Todo ==== A respectable test suite. This plugin was just a bunch of ApplicationController methods I decided to extract. Notes ===== There is similar functionality in other plugins, however they often do lots more which I didn't need. This plugin was inspired after watching Ryan Bates hand-roll a custom method for doing this for the Nth time. Copyright ========= Copyright (c) 2009 Mina Naguib, released under the MIT license