【发布时间】:2013-09-13 09:56:53
【问题描述】:
我正在尝试一次保存两个模型(一对多)。我的代码如下所示:
@submission = Submission.new(submission_params)
@submission_asset = @submission.attachments.new(submission_asset_params)
@submission_asset.attachment_type = 'submission_asset'
if @submission.save
# render or redirect here
else
@submission.errors
end
但是当我运行它时,我得到了这个错误@messages={:attachments=>["is invalid"]}。我想是因为我的依恋模型有这个:
# Attachment model snippet
validates :attachable_id, :attachable_type, presence: true
但这是为了确保它附加到Submission。但是当我删除或注释掉验证时,它会起作用并保存两个模型和关联。
如何保存?
编辑
class Submission < ActiveRecord::Base
has_many :attachments, as: :attachable, dependent: :destroy
end
class Attachment < ActiveRecord::Base
belongs_to :attachable, polymorphic: true
validates :attachable_id, :attachable_type, presence: true
end
【问题讨论】:
-
这是多态关联吗?能否请您提供您的协会的相关型号代码...
-
是的。添加了相关的模型。
标签: ruby-on-rails activerecord has-many