10

この質問は、ポリモーフィックな関係の命名スタイルに関するものです。

私のデータベースには、「会社」、クライアント、従業員の 3 種類の人がいます。3 つのそれぞれは、タスクとイベント、およびプロジェクトとポリモーフィックな関係にあります。

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
4

1 に答える 1

4

私は個人的に、できるだけ一般的に保つようにしています。

だから:as => :owner私にはもっと理にかなっています。

疑わしい場合は、使用します

:as => :parent

私はすでにいくつかのプロジェクトで見てきました。

于 2012-04-13T09:01:00.897 に答える