Inserir de forma dinâmica.
31/10/2013 17:21
0
Galera, estou começando com programação web e optei pelo grails.

tenho duas classes Aluno e Tarefa.

class Aluno{
String nome;
Tarefa tarefa;
}

class Tarefa {
String descricao;

}

Criei um formulário pelo scaffold , mas antes de cadastrar um Aluno tenho que criar uma Tarefa e só depois é que posso atribuir essa tarefa ao Aluno Criado, quero saber como fazer isso de forma dinâmica em um mesmo formulário para quando submeter esse o Aluno seja criado já com a Tarefa.

Se pude colocar um exemplo fica de boa :) Valeu o/
Tags: formulário, dinâmico


0
Bom dia G13ydson, tudo bem?
Não sei se entendi bem qual seu problema, mas seria algo como o que o "embedded" faz? você quer preencher a tarefa junto com o formulário do Aluno, certo? se for o "embedded" resolverá.
Exemplo:
class Aluno{
String nome
Tarefa tarefa
static embedded = {'tarefa'}
}

a classe Tarefa não mudaria.

referência: http://grails.org/doc/2.1.0/ref/Domain%20Classes/embedded.html
01/11/2013 09:47


1
desculpe, coloquei chaves no lugar dos colchetes, favor substituir conforme abaixo:
class Aluno{
...
static embedded= ['tarefa']
}
01/11/2013 09:49


1
já tentou no campo de descricao da tarefa colocar aluno.tarefa.descricao no value ? para fazer bind.
01/11/2013 14:54


1
Exemplo :

<g:textField name="descricao" value="${alunoInstance?.tarefa.descricao}" />
01/11/2013 14:56


0

Segue a iamgem do Form, vejam que preciso antes criar uma tarefa para que depois eu tenha que ir Novo Aluno e atribuir a ele a tarefa criada, queria que isso ficasse em apenas um formulário com os campos da tarefa e que o mesmo fosse inserido no aluno.
Coloquei os campos da tarefa no form de Aluno, mas aparece que falta inserir a ID da tarefa no INSERT INTO ALUNO(TAREFA_ID ...).

Valeu galera o/
06/11/2013 08:45


0
Você tentou o relacionamento "embedded"? não atende?
06/11/2013 11:25


0
Pelo que tem na documentação Dyego o grails vai juntar as duas tabelas q teriam em uma, porém quero separadas mesmo.
06/11/2013 14:47


1
Entendi Gleydson, realmente o embedded salva os campos na tabela do "proprietário", entretanto a tabela da classe embarcada também é criada, certo?
Bom, tenho apenas 2 meses de progamação web e grails, mas o que me veio à cabeça para o seu caso é na classe Aluno definir a tarefa como embedded e transient, não sei se é possível, mas teoricamente faria com que os campos da tarefa aparecessem no formulário de Aluno mas não seriam salvos no BD automaticamente, ai no save da controller do Aluno vc pegaria os dados da tarefa e daria um new tarefa.
não sei se funfa, é uma tentativa.
06/11/2013 16:48


1
Ué você pode mostrar um select de tarefas e depois abaixo você colocar um textField com o nome do aluno, daí no controller você pega o id da tarefa e o nome do aluno e cria um aluno com tarefa embutidas, entendeu ? não vai ficar no scaffold você que vai fazer na mão.
06/11/2013 17:52


0
Achei esse tutorial era o que estava querendo, mas ele é de 2010. Grails One to Many Dinamic Form só que no meu caso a relação será one-to-one

Vou testar pra ver se funfa. Valeu galera pela ajuda o/
06/11/2013 18:59


0
Consegui galera, não foi usando esse o tutorial que postei, foi com as dicas de vcs mesmo. Resolvi fazer no braço mesmo o controler pq entendi melhor a lógica e deu certo. O Scaffold as vezes atrapalha pra caramba.

Peguei o resultado do params e criei uma tarefa e depois o aluno e então inseri a id da tarefa
07/11/2013 11:07


0
Blza Gleydson, no fim das contas usou o embedded ou inseriu na mão direto na view do aluno?
07/11/2013 14:58


0
No braço mesmo, inseri os campos do form da view tarefa em aluno e fui no controler do Aluno e criei a tarefa primeiro pegando os valores do params e depois criei o aluno da mesma forma, mas agora passando a id da tarefa. Ficou como queria :)
07/11/2013 15:36


1
Na minha opinião seria o mais fácil mesmo Gleydson, é que no Grails tudo é tão automático que a gente fica viciado mesmo. rs
13/11/2013 15:24



Ainda não faz parte da comunidade???

Para se registrar, clique aqui.


Aprenda Groovy e Grails com a Formação itexto!

Newsletter Semana Groovy

Assinar

Envie seu link!


Livro de Grails


/dev/All

Os melhores blogs de TI (e em português) em um único lugar!

 
Creative Commons
RSS Grails Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.
Ver: 4.14.0
itexto