J'ai deux modèles: CreditCard et BlacklistItem :: CreditCard. Si je recherche un BlacklistItem :: CreditCard Tout d'abord, je reçois le comportement attendu:ActiveRecord #find obtenir la mauvaise classe d'objet
>> BlacklistItem::CreditCard.find(:all).first
=> #<BlacklistItem::CreditCard id: 5, *snip* >
>>
Si je recherche un CreditCard d'abord, quand je vais chercher BlacklistItem :: articles CreditCard plus tard je reçois un comportement inattendu:
>> CreditCard.find(:all).first
=> #<CreditCard id: 2, key_id: 4, *snip* >
>> BlacklistItem::CreditCard.find(:all).first
(irb):2: warning: toplevel constant CreditCard referenced by BlacklistItem::CreditCard
=> #<CreditCard id: 2, key_id: 4, *snip* >
>>
Qu'est-ce que je fais mal? Est-il simplement impossible d'avoir des noms avec ce genre de relation entre eux? Je vais renommer BlacklistItem :: CreditCard pour contourner le problème, mais ce serait vraiment le meilleur nom pour cet objet particulier.
Pouvez-vous nous montrer les 2 classes de modèles? Cela pourrait aider à comprendre ce qui se passe ici. –
J'ai bien peur de ne pas divulguer comment nous conservons les cartes de crédit. Il suffit de dire que nous n'avons pas outrepassé #find en aucune façon. – edebill
En aparté, vous pouvez appeler 'first' directement, par exemple:' CreditCard.first'. –