Rails多态关联accepted_nested_attributes

时间:2016-07-07 03:30:03

标签: ruby-on-rails polymorphism

我目前是像这样设置的多态关联

class Reading < ApplicationRecord
   has_one :audio, as: :audioable
   accepts_nested_attributes_for :audio
end

class Audio < ApplicationRecord
   belongs_to :audioable, polymorphic: true
end

在我的RSPEC测试中,我有这个设置

@reading = attributes_for(:reading, creator: @user, body: "who let the dogs out? Must be me\n\nMeMeMe")
@reading[:audio_attributes] = attributes_for(:audio)

但是,将此@reading发布到reading#create控制器

时出现以下错误
{:errors=>{:"audio.audioable"=>["must exist"]}}

对于非多态关联,我已经使用inverse_of来创建父资源和嵌套资源,但我不知道如何为多态关联做这件事。

1 个答案:

答案 0 :(得分:0)

inverse_of不能用于多态关联,你看过Single Table Inheritance它可能是一个很好的解决方案,取决于你想要实现的目标