2010-06-04 8 views
0

Ce projet de rails est très simple, il vient juste de commencer, donc je n'ai pas fait de failles ou de patches bizarres.Rails: impossible de convertir ActiveRecord :: Associations :: BelongsToAssociation en String

Le modèle, to_s remplace l'école avec bar si nul:

class Department < ActiveRecord::Base 
    belongs_to :school 
    def to_s 
    "foo" + (school || "bar") 
    end 
end 

dit la vue:

can't convert ActiveRecord::Associations::BelongsToAssociation into String 

sur l'instruction to_s


mais dans le script/console, Je peux prendre un département d où l'école == nul et dire

"foo" + (d.school || "bar") 

et obtenir "foobar"

Répondre

2

Le problème est quand l'école est non nul. Ce n'est pas une chaîne, donc vous ne pouvez pas l'ajouter à "foo". Voici quelques options pour le résoudre:

"foo" + (school || "bar").to_s 

"foo" + (school ? school.to_s : "bar") 

"foo" + (school.try(:to_s) || "bar") 

"foo#{school || 'bar'}" 
0

Essayez self.school

+0

Donne la même erreur. – themirror

Questions connexes