[ANN] inferred_routes plugin

Hi –

I’ve written a little plugin – consisting entirely of modifications
to define_url_helper in ActionController – which will infer nested
named RESTful route components from one object.

For example, given a nest like this:

map.resources :schools do |s|
s.resources :departments do |d|
d.resources :teachers
end
end

instead of doing this:

teacher_url(@school, @department, @teacher)

the plugin lets you do:

teacher_url(@teacher)

and it infers that you really want:

teacher_url(@teacher.department.school, @teacher.department,
@teacher)

It’s very much a “see if people like it” kind of thing. So let me
know.

You can get it via subversion from:

http://www.risleydale.net/svn/inferred_routes/tags/0.1.0

David


David A. Black | [email protected]
Author of “Ruby for Rails” [1] | Ruby/Rails training & consultancy [3]
DABlog (DAB’s Weblog) [2] | Co-director, Ruby Central, Inc. [4]
[1] Ruby for Rails | [3] http://www.rubypowerandlight.com
[2] http://dablog.rubypal.com | [4] http://www.rubycentral.org

Hi –

On Wed, 1 Nov 2006, [email protected] wrote:

Hi –

I’ve written a little plugin – consisting entirely of modifications
to define_url_helper in ActionController – which will infer nested
named RESTful route components from one object.

I’ve made it a little less hackerly by putting the code in lib/ rather
than in init.rb :slight_smile: Nothing else has changed, but if you want to have
a version that’s a bit more well-behaved in its code organization, you
can get:

http://www.risleydale.net/svn/inferred_routes/tags/0.1.1

David


David A. Black | [email protected]
Author of “Ruby for Rails” [1] | Ruby/Rails training & consultancy [3]
DABlog (DAB’s Weblog) [2] | Co-director, Ruby Central, Inc. [4]
[1] Ruby for Rails | [3] http://www.rubypowerandlight.com
[2] http://dablog.rubypal.com | [4] http://www.rubycentral.org

David,

one more question before you put your sword to rest : what about
polymorphic associations?

map.resources :articles do |article|
article.resources :comments
end
map.resources :photos do |photo|
photo.resources :comments
end

In this case,
comments_url(@comment)
should translate to something like
comments_url(@comment.commentable_id, @comment)
(?? and what about the 'commentable_type)

I must confess I’m a REST newbie, so I’m not sure at all REST can work
with polymorphism.

Alain