0

我有一个用户模型,它具有资产模型的 has_many 关联(标准回形针设置)。在视图中,我使用 fields_for 助手为资产设置了许多文件字段。当最终用户未指定文件时,将不会保存资产记录。这就是我想要的。到现在为止还挺好。

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

问题是当没有文件分配给回形针属性时,如何防止保存资产记录?而且由于资产是可选的,我不希望生成任何错误反馈。有任何想法吗?谢谢。

4

1 回答 1

0

你可以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
于 2012-08-26T20:08:07.573 回答