如何通过多态关系获取数据?

时间:2014-05-12 21:03:13

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

我有一个名为audits的表,其中包含以下列。

auditable_id, auditable_type, association_id, association_type

我在模型中定义了两个多态关系。

belongs_to :auditable, :polymorphic => true
belongs_to :associated, :polymorphic => true

当我尝试访问可审计和关联的对象时。

它适用于可审计但它不会触发关联的查询。

Audit.last.auditable #Works
Audit.last.associated #Not working

我是否需要在关联中指定列名称?

1 个答案:

答案 0 :(得分:0)

association与允许belongs_tohas_many工作的ActiveRecord代码冲突。如果无法重命名列,则必须为关联模型使用其他名称,并手动指定外键并键入as documented here。使用示例父模型名称attachment

belongs_to :attachment, :polymorphic => true, :foreign_key => :association_id, :foreign_type: :association_type