2009-03-30 5 views
12

J'ai un modèle de base pour un Item, et un script pour le peupler à partir d'une source personnalisée (pensez, flux RSS). Dans le flux, chaque élément est identifié par un guid; Dans mon système, Item a uniquement une clé primaire id générée automatiquement.que se passerait-il si vous utilisiez belongs_to sans avoir un has_one correspondant?

Je veux avoir, disons, ItemFeedInfo que les cartes guid->id (pour que je puisse distinguer entre les nouveaux articles modifiés par rapport)

Je pense à la création, je préférerais ne pas

class ItemFeedInfo 
    belongs_to :Item 
end 

pour modifier Item puisque sa définition est logiquement indépendante de ItemFeedInfo Cependant, chaque exemple que je peux trouver en utilisant belongs_to, mentionne une contrepartie has_one. Est-ce nécessaire?

Répondre

16

Peu importe.

belongs_to ajoute simplement quelques méthodes à la classe ItemFeedInfo. Vous savez quand vous faites item_feed_info.items.find_all ... Le items est juste une méthode qui a été ajoutée dynamiquement lorsque vous avez appelé belongs_to.

Si vous ne modifiez pas la classe Item, vous n'ajouterez simplement pas les méthodes de l'autre côté. Vous ne serez pas en mesure de faire item.item_feed_infos.find_all, car sans ajouter has_many :item_feed_infos, cette méthode n'aura pas été ajoutée à la classe Item, mais si vous n'avez jamais réellement besoin de faire cela, cela n'aura aucune importance.

+0

Merci beaucoup. Je ne pourrais pas trouver cette information nulle part ailleurs (peut-être que je devrais regarder plus dur ..). – lnreddy

Questions connexes