JavaFree.org | RubyOnBr.org

Working with Session

Acompanhar Working with Session 10 posts, 2 participantes

Avatar joao e o pe de feijao 126 posts

Fala Rapazeada,

Numa tela de cadastro de pessoa onde é possível cadastrar muitos telefones.
Nessa tela há um botão cancelar, ou seja, caso o usuário insira um monte de telefone e clique em cancelar, apaga-se os telefones inseridos.
Tudo é feito atraves de sessão, ou seja, caso a operação seja cancelada, apenas não é inserido no banco o que tem na sessão.

Gostaria de saber de vocês como fazem para não trabalhar com sessão…

Um abraço,
João.

 
Avatar Fernando Luizão 1863 posts

http://railscasts.com/episodes/73-complex-forms-part-1
http://railscasts.com/episodes/74-complex-forms-part-2
http://railscasts.com/episodes/75-complex-forms-part-3

 
Avatar joao e o pe de feijao 126 posts

O problema é que minha aplicação está estourando o limite de memoria para o memcache, isso provoca o erro 500.

O motivo é que os formulários com cadastro de registros filhos são colocados numa sessão (session) (a tela tem um botão de cancelar, nessa caso só deleto a sessao). Como são muitos objetos na sessão isso estoura a memória limitada para o memcache.

Preciso eliminar a sessao, alguma coisa com rollback…

A rapazeada manja?…

Abraco,
Joao.

 
Avatar Fernando Luizão 1863 posts

Acho que vc não se deu ao trabalho de olhar os links que eu passei… lá explica como fazer usando apenas javascript, sem usar sessão.

 
Avatar joao e o pe de feijao 126 posts

O meu problema é que ao cadastrar um registro filho, é aberto uma popup, ao salvar é inserido o objeto na sessao.

Ou seja, eu não tenho as informações na Hash params. As informações filhas não cabem numa lista.

 
Avatar Fernando Luizão 1863 posts

Uma opção é mudar a sessão pro bd. Cabe bem mais coisa, deve resolver o problema sem mexer com código.

 
Avatar joao e o pe de feijao 126 posts

Ai mesmo mora o meu problema…

Numa tela posso fazer muitas operações. Caso eu faça diretamente no banco, como retornar caso o usuário cancele.

Sendo que o botao de cancelar indica que será cancelado todas as operacoes envolvida com o objeto pai.

 
Avatar Fernando Luizão 1863 posts

Então, mas dá pra gravar a sessão no banco em vez de cookies. Dá uma pesquisada por ‘activerecord session store’ que é tranquilo de usar.

 
Avatar joao e o pe de feijao 126 posts

Legal!!! De mais…

Então existe tres tipos de sessão:


abstract_store
cookie_store
mem_cache_store

Alguem sabe se existe outro modo?

 
Avatar Fernando Luizão 1863 posts

active_record_store

Só criar a tabela com