Questa domanda riguarda lo stile di denominazione delle relazioni polimorfiche.Denominazione dei rapporti polimorfici bene
Il mio database ha tre tipi di persone: una "Società", un Cliente e un Dipendente. Ciascuno dei tre è in relazioni polimorfiche con compiti ed eventi e progetti.
Secondo le guide Rails, questo sarebbe stato fatto come (ho omesso alcune classi per brevità):
Person.rb
has_many :tasks, :as => :taskable
has_many :events, :as => :eventable
has_many :projects, :as => :projectable # awkward names
Task.rb
belongs_to :taskable, :polymorphic => true
These lead to the rather strange:
@person = @task.taskable
sento che il seguente sarebbe di gran lunga più grammaticale ed elegante ... sarebbe lavoro, e se è così, c'è una ragione per cui le fonti ufficiali usano parole come projectable
piuttosto che parole come owner
?
Person.rb
has_many :tasks, :as => :owner
has_many :events, :as => :owner
has_many :projects, :as => :owner
Task.rb
belongs_to :owner, :polymorphic => true
This creates the elegant:
@person_1 = @task.owner
@person_2 = @project.owner
Ho controllato la guida di Rails sulle associazioni e dice che: 'belongs_to: taskable,: as =>: polymorphic' è errato e dovrebbe essere:' belongs_to: taskable,: polymorphic => true'. – jdoe
@jdoe - Ho corretto il codice per riflettere questo. Grazie per il controllo – sscirrus