JavaFree.org | RubyOnBr.org

Confusão com Queries

Acompanhar Confusão com Queries 8 posts, 4 participantes

Avatar Rafael Felix 335 posts

Galera to meio perdido aqui, preciso de uma ajuda.

Eu tenho o seguinte modelo Question → Option → Answer
As relações são de uma para muitos, ou seja uma Question tem muitas options, e uma Option tem muitas answerss

Preciso saber se determinado usuário já votou em uma Questão, ou seja independente da opção, se o cara já voto, bloqueia.

Estava tentando fazer com named_scope, mas aparentemente o :joins não vincula o :answers com o :options, somente com o Question, objeto em questão a ser buscado.

Alguem ai pode me ajudar :)

 
Avatar Mereghost 1476 posts

E como tu tá fazendo a persistencia disso?

Minha gut reaction (aka solução rápida e porca) seria criar uma tabela que guardasse o user_id e question_id de tudo que ele já respondeu, usando um callback depois do click em votar ou coisa similar.

 
Maironbrasil#pic-0 Mairon Brasil 823 posts

dai eh soh uma um

validates_uniqueness_of :usuario_id, :question_id

ja era

 
Avatar Rafael Felix 335 posts

Sim, eu faço persistencia de tudo isso :)

Não tem como fazer uma query pra buscar essa informação?

 
Avatar Fernando Luizão 1863 posts

Sempre tem =). Mas pra isso a gente precisa saber como tu armazena isso.

 
Avatar Rafael Felix 335 posts

Armazeno dessa forma
Questions options e answers

são 3 models, 3 tabelas

Question tem muitos options e cada options pode ter muitas aswers.

Option tem o question_id
Answer tem o option_id e user_id

dado um determinado user_id preciso saber se ele já respondeu a question no caso tem um registro em answer em qualquer das opções.

 
Avatar Fernando Luizão 1863 posts

Se isso for maior que 0, então o cara respondeu.

 
Avatar Rafael Felix 335 posts

Cara, vou testar depois eu posto se funcionar, se funciona te devo uma cerveja :)


Funcionou, to te devendo essa auhauha