Bonjour,
J’ai les 2 modèles suivants, ObjectInWorld et Container, définis
comme ceci :
class ObjectInWorld < ActiveRecord::Base
# Pour cette table la pluralisation automatique n'est pas correcte
set_table_name "objects_in_world"
belongs_to :container
[...]
end
class Container < ActiveRecord::Base
has_many :objects_in_world,
[...]
end
De plus, dans “environnment.rb”, j’ai les lignes :
Inflector.inflections do |inflect|
inflect.irregular 'object_in_world', 'objects_in_world'
end
Malgré ceci, quand je tape la ligne :
Container.find(1).objects_in_world
j’obtiens l’erreur suivante :
NameError: uninitialized constant Container::ObjectsInWorld
J’ai donc été obligé de modifier le modèle Container comme ceci :
class Container < ActiveRecord::Base
has_many :objects_in_world,
:class_name => "ObjectInWorld"
[...]
end
Et là ça fonctionne.
* Est-ce que j'ai fait une erreur et c'est pour cela que ma règle de
pluriel irrégulier ne fonctionne pas, ou y a-t-il une autre raison
?
* D’ailleurs j’avais déjà mis un “set_table_name” dans le modèle
ObjectInWorld, pour une raison que j’ai oubliée mais il me
semble que sinon quelque chose ne fonctionnait pas lors de la
migration.
Cordialement,
–
Farzad FARID / Architecte Open Source - Associé
Pragmatic Source / http://www.pragmatic-source.com
Tel : +33 9 53 19 21 90 / Mob : +33 6 03 70 65 46
Rejoignez mon réseau de contacts :
http://www.viadeo.com/invitationpersonnelle/002ic6twokcvmi