Me parece que te está faltando "inflar" un poco el modelo todavía.
¿Todos los songs fueron tocados en todos los shows? ¿No tendrías un
SongPerformance? (rebautizar por favor). SongPerformance belongs_to Song y
Show.
En ese caso, SongVote (o PerformanceVote :D) belongs_to un SongPerformance y
un User.
Así, cuando un usuario va a votar (ya eligió el show), podés restringirle
qué Songs le desplegás (¿si te vota "Cachete, Pechito y Ombligo" en
Woodstock qué hacés sino?).
De esa manera podés empezar a empujar inteligencia hacia los modelos (de
hecho, esa inteligencia sería tan sólo asignar asociaciones).
Decime qué te parece...
nachokb
On Wed, Jul 30, 2008 at 3:52 PM, mayesa <[EMAIL PROTECTED]> wrote:
> Que tal gente?
>
> Me encuentro ante la siguiente situacion. Tengo 3 modelos: Show(recital),
> User, y Song. Hay otro modelo de asociacion SongVote que tiene la referencia
> a los tres, y además guarda otros datos sobre la relacion.
>
> El usuario selecciona desde una pagina un show, y las canciones que quiere
> votar para el mismo a traves de unos checkbox.
>
> En el controller de los shows, tengo un action que recibe el post, de esta
> forma (que es un asco)
>
> def vote_songs
> show_id = params[:id]
> song_ids = params[:song_votes][:song_ids]
> respond_to do |format|
> for song_id in song_ids
> @song_vote = SongVote.new
> @song_vote.show_id = show_id
> @song_vote.song_id = song_id
> @song_vote.user_id = current_user.id
> if [EMAIL PROTECTED] then
> @show = Show.find(params[:id])
> @songs = Song.find(:all)
> format.html { render :action => "new_song_vote" }
> end
> end
> format.html { redirect_to songs_votes_show_path(show_id) }
> end
> end
>
> Apelo a vuestra experiencia/consejos para conocer soluciones probadas o
> mejor aun sobre links para leer :)
>
> Tengo varios temas con esto. Ya que rstoy seguro que mi controller es
> demasiado verbose y que estoy debe estar resuelto de forma fácil.
>
> Supongo que se entiende la intencion de lo que quiero hacer (que si falla
> alguna validacion en SongVote, se vuelva a la pagina de votacion y en caso
> de no haber errores, redireccionar a la vista de votos totales de canciones
> para los shows)
>
> Saludos,
>
>
>
>
>
> ____________________________________________________________________________________
> ¡Buscá desde tu celular!
>
> Yahoo! oneSEARCH ahora está en Claro
>
> http://ar.mobile.yahoo.com/onesearch
> _______________________________________________
> Ruby mailing list
> [email protected]
> http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
>
_______________________________________________
Ruby mailing list
[email protected]
http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar