2009-03-30 2 views
12

Ich habe ein Kernmodell für eine Item, und ein Skript, um es aus einer benutzerdefinierten Quelle (denke, RSS-Feed) zu füllen. In dem Feed wird jedes Element mit einem guid identifiziert; In meinem System hat Artikel nur einen automatisch generierten id Primärschlüssel.Was würde passieren, wenn Sie "ansons_to" verwenden, ohne eine entsprechende has_one zu haben?

ich haben will, sagen wir mal, ItemFeedInfo die guid->id Karten (so dass ich zwischen den neuen vs. modifizierten Artikel unterscheiden)

Ich denke an

class ItemFeedInfo 
    belongs_to :Item 
end 

Schaffung würde ich lieber nicht zu ändern Item, da seine Definition logisch unabhängig von ItemFeedInfo ist Aber jedes Beispiel, das ich von der Verwendung belongs_to finden kann, erwähnt ein has_one Gegenstück. Ist es erforderlich?

Antwort

16

Es spielt keine Rolle.

belongs_to fügt einfach einige Methoden zur Klasse ItemFeedInfo hinzu. Sie wissen, wann Sie tun item_feed_info.items.find_all ... Die items ist nur eine Methode, die dynamisch hinzugefügt wurde, wenn Sie belongs_to aufgerufen haben.

Wenn Sie die Klasse Item nicht ändern, werden Sie die Methoden auf der anderen Seite einfach nicht hinzufügen. Sie werden item.item_feed_infos.find_all nicht ausführen können, denn ohne has_many :item_feed_infos hinzuzufügen, wird diese Methode nicht der Item Klasse hinzugefügt, aber wenn Sie das nie wirklich tun müssen, spielt es keine Rolle.

+0

Vielen Dank. Ich konnte diese Information nirgendwo sonst finden (vielleicht sollte ich härter schauen ..). – lnreddy

Verwandte Themen