Проверка наличия условной скрепки


Как я могу проверить, что вложение скрепки не существует, Если существует другое поле? Я попробовал:

validates_attachment :img, presence: false, if: :some_other_field?
def some_other_field?
  some_other_field
end
3 4

3 ответа:

Аналогичная проблема здесь, мое решение было сделать сравнение в def

validate :check_image_with_title 

def check_image_with_title
   if !ctitle.blank? and cimage.blank?
      #If ctitle IS NOT empty and cimage IS empty, add a custom error message
      errors.add :key, "You need an image to go with your title"
      return false
    else
      return true
   end 
end

Попробуйте это: -

validates_attachment :img, presence: true, if: :some_other_field?
def some_other_field?
  some_other_field.present?
end

Вы пробовали использовать exists? вместо present?, может быть работает

validates_attachment :img, presence: false, if: :some_other_field?
def some_other_field?
  some_other_field.exists?
end