Hello I have product model that has a given workflow (given by state_machine). Then I have 2-3 versions of product that have a slightly different workflow. Since state_machine has a elegant way of handling class inheritance (compared to aasm), I have 2-3 models that inherit from Product. (ProductOne, ProductTwo, etc). The Product model has_many transisions. this is a hm relationship that basically handles all transisions/events RESTfully. I also get transision logging by having this transision model. My question is how this is implemented as DRY as possible in routes.rb. this is how my routes.rb looks like today: map.resources :products do |product| product.resources :transisions, :only => [ :index, :new, :create ] end map.resources :product_one, :as => ''products'', :controller => ''products'' do |product| product.resources :transisions, :only => [ :index, :new, :create ] end map.resources :product_two, :as => ''products'', :controller => ''products'' do |product| product.resources :transisions, :only => [ :index, :new, :create ] end map.resources :product_three, :as => ''products'', :controller => ''products'' do |product| product.resources :transisions, :only => [ :index, :new, :create ] end Is there a more elegant way to handle this. goal is to have only "products" routes. I do not want separate routes for each variant of product. I tried this but it did not work :-): map.resources :products, :has_many => [ :transisions => { :only => [:index, :new, :create] } ] /MartOn