Подтвердить что ты не робот

Именование полиморфных отношений хорошо

Этот вопрос касается стиля наименования полиморфных отношений.

В моей базе данных есть три типа лиц: "Компания", Клиент и Сотрудник. Каждый из трех находится в полиморфных отношениях с задачами и событиями и проектами.

В соответствии с направляющими Rails это будет сделано как (я сократил несколько классов для краткости):

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

Я чувствую, что следующее будет гораздо более грамматическим и элегантным... будет ли это работать, и если да, есть ли причина, по которой официальные источники используют слова типа projectable, а не такие слова, как 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
4b9b3361

Ответ 1

Я лично стараюсь держать его как можно более общим.

Итак, :as => :owner имеет для меня больше смысла.

В случае сомнений, я просто использовал

:as => :parent

который я уже видел в некоторых проектах.