Calling RESTful 'scoped' INDEX when params[:parent.id] is no

Jordon,
I have a VERY hierchical database and am using a RESTful
approach. Normally, when users’ enter the system they’ll cascade from
level to level in the database and thus the hierchical information
such as child.parent.grandchild_id are always available to the RESTful
routes.
However, when I attempt to simply call a middle level table.index I
obviously fail, because the parent_id is not available to pass to the
RESTful route.
I’d like to have a ‘safety mechanism’ built into my code that handles
this, and provide the pieces that describe the problem.
Here is an example of my before_filter event and the way I use it
to call my index:

def find_parent
@find_parent || @project = Project.find(params[:project_id])
end

Here is a typical table.index action:

def index
@portal_pages = Paginator.new self, @project.portals.count, 3,
params[:page]
@portals = @project.portals.find :all,
:order => ‘description’,
:limit => @portal_pages.items_per_page,
:offset => @portal_pages.current.offset
respond_to do |format|
format.html # index.rhtml
format.xml { render :xml => @portals.to_xml }
end
end

Would it be reasonable to make the INDEX code something like this;

def index
if @project.nil?
@portal_pages = Paginator.new self, Portal.count, 3, params[:page]
@portals = Portal.find :all,
:order => ‘description’,
:limit => @portal_pages.items_per_page,
:offset => @portal_pages.current.offset
else
@portal_pages = Paginator.new self, @project.portals.count, 3,
params[:page]
@portals = @project.portals.find :all,
:order => ‘description’,
:limit => @portal_pages.items_per_page,
:offset => @portal_pages.current.offset
end
respond_to do |format|
format.html # index.rhtml
format.xml { render :xml => @portals.to_xml }
end
end

Fundumentally, what 'blows my mind' is that the 'find_parent'

‘before_filter’ event ALWAYS has to fire and if no parent exists, I
can’t see how to return a ‘@project.nil’ or whatever is needed to feed
the if, else routine (above)?

Thank you,
Kathy

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs