Ruby on rails 跳过rails中多态关联的验证

Ruby on rails 跳过rails中多态关联的验证,ruby-on-rails,Ruby On Rails,我试图保存一个名为Upload的模型,它有一个称为uploadable的多形式关联 现在我正在做一个dropzone js区域,用户可以在其中拖放文件,它应该在服务器端创建上载,然后返回一些键,这些键将添加到html中,并且只有在用户保存表单时才会使用(如果用户保存表单,我将使用刚刚创建的注释设置可上传的\u id和可上传的\u类型,否则,上传将在24小时内通过cronjob自动删除) 我唯一的问题是,rails自动希望在我执行@upload.save时,可以上传的\u id e uploada

我试图保存一个名为Upload的模型,它有一个称为uploadable的多形式关联

现在我正在做一个dropzone js区域,用户可以在其中拖放文件,它应该在服务器端创建上载,然后返回一些键,这些键将添加到html中,并且只有在用户保存表单时才会使用(如果用户保存表单,我将使用刚刚创建的注释设置可上传的\u id和可上传的\u类型,否则,上传将在24小时内通过cronjob自动删除)

我唯一的问题是,rails自动希望在我执行@upload.save时,可以上传的\u id e uploadable\u类型出现

如何仅跳过可上载属性的验证(状态验证)?我希望避免使用@upload.save(validate:false),因为它跳过所有验证,而不仅仅是一个验证

我尝试过使用假属性:

class Upload < ApplicationRecord
  belongs_to :uploadable, polymorphic: true
  has_attached_file :file

  attr_accessor :skip_uploadable_validation

  validate :uploadable, unless: :skip_uploadable_validation

end

但它不起作用。

您可以将
可选:true
添加到此行:

属于:可上传、多态:true、可选:true

或者通过这种方式:

with_options unless: :skip_uploadable_validation do
  validates :uploadable_id, presence: true
  validates :uploadable_type, presence: true
end
with_options unless: :skip_uploadable_validation do
  validates :uploadable_id, presence: true
  validates :uploadable_type, presence: true
end