1

我正在为一个艺术展览网站构建一个 Rails 应用程序。目前我有4个模特,策展人,展览,艺术家和艺术品。

该应用程序应该如下工作,一个展览可以由多个策展人策展,一个展览可以展示多件艺术品,一件艺术品可以在多个展览中展示,艺术家可以拥有多件艺术品,艺术品属于一个艺术家。

我是一名铁路新手,我很难建立模型之间的关系。你能告诉我我这样做是否正确,或者有更好的方法吗?

策展人.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 回答