1

这个问题已经被问过很多次了,但我无法针对我的具体情况给出任何答案,所以就这样吧。

我有一个events,options和一张templates桌子。还有一个events_templates用字段调用的连接表:

  • option_id
  • 模板编号
  • event_id

一个事件的每个选项都有一个模板。但显然可以有很多模板,因为有多个选项。

目前我的event模型有方法

has_many :templates, class_name: "EventsTemplate"

问题是,这是正确的设置还是我应该使用 HABTM?

提前非常感谢!

4

1 回答 1

1

我认为您应该根据您指定的要求进行一些不同的设置。

has_many :templates, class_name: "EventsTemplate"

这不会按您希望的方式工作。它将为事件提供关联模板,但调用该关联将返回 EventTemplates。

您可能希望使用through关联进行设置。

class EventTemplate < ActiveRecord::Base
  belongs_to :option
  belongs_to :template
  belongs_to :event
end

class Event
  has_many :event_templates
  has_many :templates, through: :event_templates
end
于 2013-04-10T08:39:05.117 回答