一些用例背景:我没有将Paperclip用于头像或类似的东西。我希望人们制作可以包含文件或链接的“提交”,具体取决于他们之前选择的提交类别(实际文件正在上传到名为Submission Details的表中,该表具有提交的外键)。某些类别具有“链接”类型,某些类别具有“图像”或“PDF”类型。如果他们选择了链接类别,则后续URL信息将存储在与图像/附件列不同的列中。
以下是我的模型中的代码,用于确定哪个是:
def nonlink?
if submission.category.submission_file_type == "Mixed (PDF and Images)" || submission.category.submission_file_type == "Images Only"
return true
else
return false
end
end
理想情况下我想要:allow_blank if:nonlink?在模型的列验证区域中为true或false。
我的第一个问题是,validates_attachment_presence是否允许:allow_blank?如果没有,那么最好的选择是什么。
其次,在模型中使用:allow_blank创建if语句的语法是什么?现在我有这个,但不确定它是对的:
validates_attachment_presence :attachment, allow_blank: true, if: [:nonlink? == false]
感谢任何想法,谢谢!
答案 0 :(得分:0)
通过执行包含validates_presence_of的额外验证行而不仅仅是验证来解决此问题。我做了两个单独的方法,非链接和链接,一个看起来像:
validates_presence_of :attachment, if: :nonlink?
使用这个我能够完全摆脱:allow_blank。