2010-06-04 4 views
0

Lorsque j'imprime un ActiveRecord d'un département, je reçois:Rails: associations d'impression dans ActiveRecord les inspecteurs

Département: 0x210ec4c { : id => 3, : name => "Computer Science", ... : school_id => 3 }

Comment puis-je faire me donner l'école au lieu de school_ID? En d'autres termes, appelez to_s sur l'école trouvée par school_id. Tout comme la façon quand j'ai d DEPARTMENT, je peux dire

d.school

Pour clarifier les choses, je demande spécifiquement sur l'impression ActiveRecord, et environ au lieu d'un particulier, le ministère CLASSE exemple. Je me demandais s'il y a un moyen de patcher ActiveRecord de sorte que lorsque j'imprime la classe Département dans la console, je reçois les school.to_s de chaque ministère au lieu de school.id

Répondre

1

Si votre assosciation comme suit

class School < ActiveRecord::Base 
    has_many :departments, :dependent => :destroy 
end 

class Department < ActiveRecord::Base 
    belongs_to :schools, :dependent => :destroy 
end 

Puis,

@department =Department.find(1) #For example here 
@department.school #gives you the school object 
# (i assume you are saving schoolname in 'name' column of schools table) 
@department.school.name #This gives you school name 
+0

OK, désolé, je n'étais pas assez clair dans ma question. Je demandais spécifiquement à propos de l'impression de l'ActiveRecord, et de la classe Department plutôt que d'une instance particulière. Je me demandais s'il y avait un moyen de patcher ActiveRecord de sorte que lorsque j'imprime la classe Département dans la console, je reçois l'école de chaque département au lieu de school.id – themirror

Questions connexes