1

美術展 Web サイト用の Rails アプリケーションを作成しています。現在、キュレーター、エキシビション、アーティスト、アートワークの4つのモデルを持っています。

アプリケーションは次のように機能する必要があります。展覧会は多くのキュレーターによってキュレーションでき、展覧会は複数の作品を展示でき、作品は多くの展覧会で展示でき、アーティストは多くの作品を所有でき、作品は 1 人のアーティストに属します。

私は鉄道初心者で、モデル間の関係を構築するのに苦労しています。私がこれを正しく行っているかどうか、またはもっと良い方法があるかどうか教えてもらえますか?

curator.rb

class Curator < ActiveRecord::Base
    has_and_belongs_to_many :exhibitions
end

展示会.rb

class Exhibition < ActiveRecord::Base
  has_and_belongs_to_many :curators
  has_and_belongs_to_many :artworks
end

作品.rb

class Artwork < ActiveRecord::Base
  has_and_belongs_to_many :exhibitions
  belongs_to :artist
end

アーティスト.rb

class Artist < ActiveRecord::Base
  has_many :artworks
end

ありがとう!

4

2 に答える 2

0

私には正しく見えます。結合テーブルの命名規則を作成してください。

curators_exhibitions

artworks_exhibitions

あなたがアイデアを得ることを願っています。

また、関係に加えて検証を行いたい場合は、has_many:throughを確認することをお勧めします。

于 2013-02-08T09:58:27.197 に答える
0

リレーションシップを検証する場合、コールバックを使用する場合、または追加の属性を追加する場合は、 has_many :through を使用することをお勧めします。

この問題に関する詳細情報が必要な場合は、次の Rails ガイドが最適です。

http://guides.rubyonrails.org/association_basics.html#choosing-between-has_many-through-and-has_and_belongs_to_many

ただし、HABTMは問題ないようです。問題が発生した場合は、結合されたテーブルも参照することをお勧めします。

于 2013-02-08T10:05:58.857 に答える