Rails 4将多态类型转换为不同的父模型

时间:2016-01-01 23:08:09

标签: ruby-on-rails ruby-on-rails-4 activerecord polymorphic-associations

我目前正在实现具有名为“Conversation”的模型的功能,该模型使用多态关联有许多“消息”。

我的目标是从“Conversation”对象的某些字段中的“Feature”模型创建一个新对象,并将所有相关消息附加到Feature类型“messages”我知道我可以创建对象如果有一种简单的方法可以改变“messageable_type”并将记录与特征模型相关联,那么它就更好了。

我的可消息多态关联目前在我的“对话”和“功能”模型上都正常工作。

我的消息模型:

class Message < ActiveRecord::Base
  belongs_to :user
  belongs_to :messageable, polymorphic: true
end

我的对话模型:

class Conversation < ActiveRecord::Base
  belongs_to :user
  has_many :messages, as: :messageable, dependent: :destroy
  has_many :stakeholders, as: :stakeholderable, dependent: :destroy
  accepts_nested_attributes_for :stakeholders, :messages
end

我的功能模型:

class Feature < ActiveRecord::Base
  has_many :stakeholders, as: :stakeholderable, dependent: :destroy
  has_many :messages, as: :messageable, dependent: :destroy
  accepts_nested_attributes_for :stakeholders, :messages
end

0 个答案:

没有答案