DRYing Routes

I have a series of 'static' pages for a site that need named routes in Rails 3. I'm trying to DRY the routes file, but can't seem to find the proper code.

The desired output/code is:

match '/about' => 'info#about', :as => :about

for each page. My attempt to dry this:

%w(about services articles marketing clients).each do |page|     match eval( "'/#{page}' => 'info##{page}', :as => :#{page}") end

Any suggestions?

I figured this out:

    eval( "match '/#{page}' => 'info##{page}', :as => :#{page}")

dwormuth wrote:

I have a series of 'static' pages for a site that need named routes in Rails 3. I'm trying to DRY the routes file, but can't seem to find the proper code.

The desired output/code is:

match '/about' => 'info#about', :as => :about

for each page. My attempt to dry this:

%w(about services articles marketing clients).each do |page| match eval( "'/#{page}' => 'info##{page}', :as => :#{page}") end

eval is almost never a good idea, and it certainly isn't needed here. Try:

match "/#{page}" => "info##{page}", :as => page.to_sym

Any suggestions?

Remember to try string interpolation and send. eval is not that useful in Ruby -- if you think you need it, remember that you almost certainly don't.