| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/09/2011 16:00:26
|
romulosb
Debugger
![[Avatar]](/images/avatar/a470e2a3978417489236958937833572.jpg)
Membro desde: 18/11/2009 23:01:38
Mensagens: 50
Offline
|
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á.
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/10/2011 18:12:31
|
DEAD
JavaTeenager
Membro desde: 15/02/2007 12:32:27
Mensagens: 151
Offline
|
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):
https://gist.github.com/1263015
SubCategoriaProduto(model):
https://gist.github.com/1263021
Produto(model):
https://gist.github.com/1263038
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:
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.
|
 |
|
|
 |
|
|
|
|