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

Responder a