Martin,

Yeah, that helps a lot.  I have to remember that the routes generator
is just Ruby and I can do whatever rubyesque things I want in there!

Erik

On Tue, Oct 27, 2009 at 9:44 AM, Martin Emde <[email protected]> wrote:
> Erik,
> I've had to generate a lot of my own routes rather than using resources.
> Here's an example of what I'm doing to keep them clean:
>   map.with_options :controller => "beers" do |beers|
>     beers.beers   "beers.:format",     :action => "index",  :conditions =>
> {:method => :get}
>     beers.connect "beers.:format",     :action => "create", :conditions =>
> {:method => :post}
>     beers.connect "beers/new.:format", :action => "new",    :conditions =>
> {:method => :get}
>     beers.with_options :id => /\d+/ do |beer|
>       beer.beer    "beers/:id.:format", :action => "show",    :conditions =>
> {:method => :get}
>       beer.connect "beers/:id.:format", :action => "update",  :conditions =>
> {:method => :put}
>       beer.connect "beers/:id.:format", :action => "destroy", :conditions =>
> {:method => :delete}
>     end
>   end
>   map.with_options :path_prefix => "beers/:beer_id", :name_prefix =>
> "beer_", :beer_id => /\d+/ do |beer
> |
>     beer.resource  :bookmark, :only => [:show, :create, :update, :destroy]
>     # etc...
>   end
> I had to separate the paths for integer ids and permalink ids and this is
> what I came up with for the rather complex integer id part. It's not so bad
> when deconstructed like that.
> Hope that helps,
> Martin Emde
> Tw: @martinemde
>
>
> On Tue, Oct 27, 2009 at 2:50 AM, Erik Pukinskis <[email protected]>
> wrote:
>>
>> Hi Nick and Chris,
>>
>> Thanks for the tips!  As Nick says, it's more than just the single
>> route, which is why what (Chris) you're suggesting doesn't quite get
>> me there.
>>
>> I did come across the "default routing" plugin
>> (http://github.com/caring/default_routing) which purports to attach
>> resources to /, but it didn't work for me.  It put extra slashes in
>> the routes.
>>
>> I patched it to generate proper URLs, but it still didn't seem to work
>> quite right, and was requiring more and more patches.
>>
>> So, I'm just making all the routes by hand.  It's starting to get
>> ugly, but we'll see how it ends up.  One issue is that the named
>> routes are a mess.  I'm starting to give up named routes.  The benefit
>> I get from the automagicness seems to be outweighed by the massive
>> hackery I have to go through when the magic is wrong.
>>
>> Best,
>> Erik
>>
>>
>>
>>
>> On Sun, Oct 25, 2009 at 9:06 PM, Nick Zadrozny <[email protected]> wrote:
>> > And I may have clicked send too soon, because that doesn't really answer
>> > the
>> > core of your question.
>> > To be honest, if you really want to be explicit and map each of the
>> > actions,
>> > I say go ahead and do it manually. I'm going to assume that, since this
>> > is
>> > in the root of the URL path, this is the only controller that will be
>> > handled in this way. In which case, no big deal expanding that out.
>> > map.user ":id", :controller => "users", :action => "show", :conditions
>> > => {
>> > :method => :get }
>> > map.user ":id", :controller => "users", :action => "update", :conditions
>> > =>
>> > { :method => :put }
>> > map.user ":id", :controller => "users", :action => "destroy",
>> > :conditions =>
>> > { :method => :delete }
>> > map.user ":id/edit", :controller => "users", :action => "edit",
>> > :conditions
>> > => { :method => :get }
>> > Now, I left off the index, create and new actions here. They're the ones
>> > that give me pause. Do you really want to put each action in the root of
>> > your URL namespace? If so, cool, go for it. However, what I suspect
>> > might
>> > work equally well is to simply override the "show" case.
>> > map.resources :users
>> > map.user ":id", :controller => "users", :action => "show"
>> > I think (but have not recently tested, so do some experimenting) that
>> > this
>> > should override the user_path helper method and generally redirect you
>> > to
>> > "/whomever" where appropriate, while still using the "/users" prefix for
>> > other actions. At any rate, I seem to recall having done something
>> > similar
>> > with an older project of mine, so it may serve as an idea worth pursuing
>> > for
>> > your app.
>> > I hope that's a bit more helpful!
>> > --
>> > Nick Zadrozny
>> >
>> > >
>> >
>>
>>
>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
SD Ruby mailing list
[email protected]
http://groups.google.com/group/sdruby
-~----------~----~----~----~------~----~------~--~---

Reply via email to