轨道多个HABTM



我正在为一个艺术展览网站构建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

artwork.rb

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

artist.rb

class Artist < ActiveRecord::Base
  has_many :artworks
end

谢谢!

如果您想对关系进行验证、使用回调或添加额外属性,我建议您使用has_many:through。

如果你想了解更多关于这件事的信息,这个轨道指南很好:

http://guides.rubyonrails.org/association_basics.html#choosing-在-hasmany-through-and-has_and_belongs_to_many 之间

不过你的HABTM看起来不错。如果遇到任何问题,建议同时引用联接的表。

我觉得很对。创建联接表的命名约定是:

curators_exhibitions
artworks_exhibitions

希望你明白。

此外,您还想查看has_many:through,以防您想在关系之上进行验证!

相关内容

  • 没有找到相关文章

最新更新