0

我有一个活动、一个供应商和一个场地模型。

一个活动可以有多个供应商,但只有一个场地。

一个场地可以有多个供应商和多个活动。

供应商可以有多个场所和多个活动。

我有一个事件表、一个场地表、一个供应商表、一个 events_vendor 表和一个 events_venue 表。

如何设置我的模型?

class Event < ActiveRecord::Base
attr_accessible :name, :budget, :client, :date, :description, :attendees,   
:assets_attributes, :tag_list
belongs_to :user
has_many :assets, :dependent => :destroy
has_many :vendors
has_one :venue
accepts_nested_attributes_for :assets, :allow_destroy => true
acts_as_taggable
end

class EventsVendors < ActiveRecord::Base
  attr_accessible :event_id, :vendor_id
end

class EventsVenues < ActiveRecord::Base
  attr_accessible :event_id, :venue_id
end

class Vendor < ActiveRecord::Base
  attr_accessible :city, :contact, :country, :description, :email, :employees, 
  :latitude, :longitude, :minimum, :name, :state, :street, :tel, :type
  belongs_to :event
end

class Venue < ActiveRecord::Base
  attr_accessible :capacity, :city, :contact, :country, :email, :exclusiveVendors, :fee, 
  :latitude, :longitude, :name, :state, :street, :tel, :union
  belongs_to :event
  has_many :vendors
end

我的 events_venues 模型是否同时属于活动和场所?我是否必须指定 :through 关系?

任何帮助,将不胜感激。谢谢!

4

1 回答 1

1

是的,连接表应该看起来像这样。

活动场地

属于_to:事件

归属地:地点

事件

has_many :venues, 通过: :events_venues

has_many :events_venues

场地

has_many :events,通过: :events_venues

has_many :events_venues

于 2012-11-14T03:25:13.697 回答