Are these archives in separate databases? I don’t see you needing to create separate controllers for each archive. You might have to juggle some table naming features but nothing terribly insane. [I do it for a multi-site app I’m working on where each site has their own content db.] Without knowing more about the particular constraints you’re under I can’t/won’t hazard any further speculation but I wouldn’t give up just yet.
As I see it you’re just wanting to index them by volume which is snaptastically easy. First you’ll need to make your routing aware of the the volume parameter. map.connect “/main/archive/:volume” will give you @volume [as a String, mind you] to use in your controller. In the controller just do something like Entry.find(:all, :conditions => [“volume = ?”, @volume]). You might need to change that @volume to @volume.to_i but might not. This isn’t the whole solution [since 1) I don’t know the rest of your code and 2) you’re the one getting paid for it – hopefully] but should get you moving in the right direction.
As I see it you're just wanting to index them by volume which is
snaptastically easy. First you'll need to make your routing aware
of the the volume parameter. map.connect "/main/archive/:volume"
will give you @volume [as a String, mind you] to use in your
controller. In the controller just do something like Entry.find
(:all, :conditions => ["volume = ?", @volume]). You might need to
change that @volume to @volume.to_i but might not. This isn't the
whole solution [since 1) I don't know the rest of your code and 2)
you're the one getting paid for it -- hopefully] but should get you
moving in the right direction.
RSL
Actually /main/archive/:volume will not give you @volume, it will
give you params[:volume]
D’oh! You’re right! Now I’m scratching my head trying to figure out why I wrote [and thought] that when I do know better. Perhaps some brainfart about the long-deprecated @params variable? Sure, let’s blame that. [Shame on me.]