I would do it without RESTful. It is not necessary that it be RESTful. Even @ jdl's answer is not RESTful, because it contains only one action show. In this case, reports are not resources that can be created, edited, or deleted. I would add the following routes:
map.report 'reports/:id', :controller => 'reports', :action => 'generate'
map.report_with_format 'reports/:id.:format', :controller => 'reports', :action => 'generate'
map.reports 'reports', :controller => 'reports', :action => 'index'
Using named routes instead connectwill give you some useful URL helpers, e.g. reports_pathetc.
source
share