Um ein paar der neuen Rails-Features auszuprobieren, baue ich eine 
kleine Filmdatenbank. Darin gibt es Filme, Personen, Rollen und 
RollenTypen. RollenTypen gibt es "Schauspieler" und "Regisseur". Ich 
möchte nun für Personen eine Assoziation definieren, die die Person mit 
allen Filmen verknüpft, in denen sie mitgespielt hat.

Das hatte ich mir zunächst so gedacht

class Person < ActiveRecord::Base
  has_many :roles, :include => :role_type
  has_many :acts_in, :through => :roles, :source => :movie,
    :order => 'release_date',
    :conditions => { :roles => { :role_type => { :name => 'Actor' } } }

Es funktioniert aber nicht, weil das :include von roles nicht an die 
abgeleitete acts_in weitergegeben wird. Nächster Versuch

class Person < ActiveRecord::Base
  has_many :roles
  has_many :acts_in, :through => :roles, :source => :movie,
    :order => 'release_date', 
    :include => :role_type,
    :conditions => { :roles => { :role_type => { :name => 'Actor' } } }

Geht auch nicht, weil :include sich auf das Zielmodel, nämlich Movie, 
bezieht.

Ist es ohne handgeschriebenes SQL möglich, eine Bedingung zu 
formulieren, die sich auf ein weiteres, zu dem through-Objekt gejointes 
Objekt bezieht?

Michael

-- 
Michael Schuerig
mailto:[email protected]
http://www.schuerig.de/michael/
_______________________________________________
rubyonrails-ug mailing list
[email protected]
http://mailman.headflash.com/listinfo/rubyonrails-ug

Antwort per Email an