Rails多个HABTM

时间:2013-02-08 09:52:56

标签: ruby-on-rails ruby-on-rails-3

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

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

我是铁路新手,我很难建立模型之间的关系。你能告诉我,我做得对吗,还是有更好的方法?

curator.rb

class Curator < ActiveRecord::Base
    has_and_belongs_to_many :exhibitions
end

exhibition.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

谢谢!

2 个答案:

答案 0 :(得分:0)

它看起来对我来说..创建连接表的命名约定是:

curators_exhibitions

artworks_exhibitions

希望你明白这一点。

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

答案 1 :(得分:0)

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

如果您想了解有关此事项的更多信息,请参阅此指南:

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

你的HABTM看起来很好。如果您遇到任何问题,建议您也引用已连接的表格。