保存多个回形针附件时不指定文件输入



我有一个用户模型,它与资产模型有很多关联(标准回形针设置)。在视图中,我使用fields_for helper为资产设置了许多文件字段。如果最终用户未指定文件,则不会保存资产记录。这就是我想要的。到目前为止还不错。

然后我添加了一个标题属性到资产模型。我还为每个相应的文件字段添加了一个文本字段。问题来了。当最终用户未指定文件或标题时,将保存资产记录。保存的记录的标题为空字符串,所有其他回形针属性为零。

问题是,在没有为回形针属性指定文件的情况下,如何防止保存资产记录?由于资产是可选的,我不希望生成任何错误反馈。有什么想法吗?谢谢

您可以在资产模型中执行validates_presence_of :caption,但这也需要标题。如何检查链接到用户before_validation的所有资产上是否存在文件?也许是这样的?(可能需要一些调整)

class User < AR::Base
  has_many :assets, :dependent => :destroy
  before_validation :check_assets
  def check_assets
    self.assets.each do |asset|
      unless asset.attachment.file?
        if asset.new_record?
          self.assets.delete(asset)
        else
          asset.destroy
        end
      end
    end
  end
end

相关内容

  • 没有找到相关文章

最新更新