pensando en vos alta...

aveces me resulta primero pensar el sql y después ver de mapearlo a Rails...
se me ocurre este select para tu problema

select distinct location.name
from location l, academic a
where l.academic_id = a.id

el join entre las tablas te filtra solito los locations que no tenga
un academic y el distinct te saca los duplicados..... se me ocurre que
funciona...
eso pasado a rails deberia ser algo así

location.find(:all, :include => [academic], :select => 'distinct location.name')

puede fallar.... puede fallar...

-- 
:: nelson ::
artesano de software
http://netflux.com.ar



On 10/30/07, Diego Algorta Casamayou <[EMAIL PROTECTED]> wrote:
> Hola amigos.
>
> Tengo (simplificado) estos 2 modelos relacionados así:
>
> class AcademicProgram < ActiveRecord::Base
>   belongs_to :location
> end
>
> class Location < ActiveRecord::Base
>   has_many :academic_programs
> end
>
> Ahora debo obtener la colección de instancias de Location que tengan
> al menos 1 AcademicProgram. ¿se entiende? Es para mostrar en un
> select_tag las locations donde existen academic_programs.
>
> Quisiera saber qué distintas soluciones encuentran, ya sea usando
> find_by_sql o mejor, algo más "Rails Way".
>
> --
> Diego Algorta Casamayou
> http://www.oboxodo.com - http://diego.algorta.net
> _______________________________________________
> 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