class Post < ApplicationRecord
  before_save :gen_slug
  belongs_to :user, optional: true

  mount_uploader :cover, CoverUploader
  validates_uniqueness_of :title
  validates :description, length: { in: 110..300 }
  
  validates_presence_of :title, :category, :description, :body

  private 

  def gen_slug
    str = ActiveSupport::Inflector.transliterate(self.title.titleize).gsub(/[^0-9A-Za-z]/, '')
    self.slug = str if self.slug.blank?
  end

end