0

我正在使用carrierwave上传图像文件。我基本上有一个表单字段“_form.html.erb”,其中包含提交给数据库的标题、描述、图像和类别。我想要做的是,如果一个类别是 != 到“社交”,然后检查图像是否存在,但如果它等于社交,那么继续并提交给数据库而不使用图像。现在提交“图像不能为空白”时出现错误。我认为这个错误可能来自我模型中的 validates_presence_of :image 行,但对此不确定。所以我试图将它包装在一个 if 语句块中,但我仍然得到它。有谁知道我如何解决我正在尝试做的事情。

if :category != "social" 
    validates_presence_of :image
  end
4

1 回答 1

2

将 aProc:if验证器上的选项一起使用。

validates :image, presence: true, if: Proc.new { |a| a.category != "social" }

推荐阅读: http: //guides.rubyonrails.org/active_record_validations_callbacks.html#using-a-proc-with-if-and-unless

于 2012-12-10T15:24:40.643 回答