2010-06-25 15 views
5
register < user 

admin < user 

class project 
    has_many :admin, :class => 'User', :conditions => "type = 'admin'" 
    has_many :registers, :class => 'User', :conditions => "type = 'registers'" 

das Problem hier ist, wenn ich Projekt verwenden, um has_many ein Register oder Admin erstellen, ist es nicht fill Objektklasse in Art abgelegt automatisieren.sti und has_many in Schienen

wie folgt: project.admins.new.

wie Sie dieses Problem beheben?

Antwort

13

Sie sollten in der Lage sein, die has_many-Beziehungen direkt anzugeben, ohne Rails mitteilen zu müssen, dass die Klasse Benutzer ist. So ähnlich:

class User < ActiveRecord::Base 
    belongs_to :project 
end 

class Register < User  
end 

class Admin < User 
end 

class Project < ActiveRecord::Base 
    has_many :admins 
    has_many :registers 

    def make_new_admin 
    ad = admins.create(:name => "Bob") 
    # ad.type => "Admin" 
    end 
end 
Verwandte Themen