Restful

Galera, tenho estudado rails, e estou tentando abstrair o conceito de restfull e da lógica de negócios do model.
Para estudo, resolvi desenvolver um sistema ficticio de comprar, no estilo do mercado livre, ebay, etc?
Pois bem: Tenho três entidades: CategoriaProduto, SubCategoriaProduto e Produto.
Minha dúvida é na hora de criar um produto. Quero que o usuário clic em uma categoria, logo depois apareca todas as subcategorias para ele escolher, e depois a tela de cadastro do produto. Como ficaria essa organização a nível de controller?
No java eu criaria métodos para ir setando essas características no objeto Produto. Mas como rest diz que deve-se ter apenas as actions básicas, não consegui enchergar como fazer isso.

Agradeço desde já.

Abaixo você pode estudar um pouco mais do MVC em ação em conjunto com os Routes do Rails. O que te dará uma noção sobre como mapear os recursos para usar em conjunto com o REST.
http://ruby.railstutorial.org/chapters/a-demo-app#sec:mvc_in_action

No Rails você teria um modelo individual para cada uma das classes que você disse(CategoriaProduto, SubCategoriaProduto e Produto).
Acredito que seus modelos ficariam mais ou menos assim:
CategoriaProduto(model):

SubCategoriaProduto(model):

Produto(model):

Enquanto ao seu controller, você pode criar um controller para popular os dados independente dos models. Quando você não utiliza o Scaffold você pode mapear seus recursos de uma maneira mais flexível.
Eu utilizaria esse cadastro no controller de Produto(pois você estará fazendo um cadastro de produto, e você já terá suas SubCategorias e Categorias com dados pré populados). Dai é só fazer as validações na view para ir mostrando os items assim que você for escolhendo(no seu caso escolher uma Categoria em um drop-box ou via ajax, liberar a SubCategoria para ser buscada, depois isso liberar a partial contendo o cadastro de Produtos para ser populado).
Ex:

@categoriaprodutos.subcategoriaprodutos.each do |subcate|
Retornaria todas as categorias de um determinado produto, ou de todos os produtos, dependendo de qual função foi chamada antes(CategoriaProdutos.all ou CategoriaProdutos.find(params[:id])).
O segredo aqui está mais em entender os models do que o controller em si.