Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.
 
 
 
 
 

22 рядки
651 B

  1. class Product < ApplicationRecord
  2. has_many :line_items
  3. before_destroy :ensure_not_referenced_by_any_line_item
  4. validates :title, :description, :image_url, :price, presence: true
  5. validates :price, numericality: {greater_than_or_equal_to: 0.01}
  6. validates :title, uniqueness: true, length: { minimum: 5, maximum: 30 }
  7. validates :image_url, allow_blank: true, format: {
  8. with: %r{\.(gif|jpg|png)\Z}i,
  9. message: 'must be URL for GIF, JPG or PNG image.'
  10. }
  11. private
  12. def ensure_not_referenced_by_any_line_item
  13. unless line_items.empty?
  14. errors.add(:base, 'Line Items present')
  15. throw :abort
  16. end
  17. end
  18. end