docbrown/app/models/badge.rb
Mac Siri 071d874c33
Add back Badge#path (#18471)
* Add back Badge#path

* Update app/models/badge.rb

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2022-09-20 09:01:29 -04:00

29 lines
668 B
Ruby

class Badge < ApplicationRecord
mount_uploader :badge_image, BadgeUploader
resourcify
has_many :badge_achievements, dependent: :restrict_with_error
has_many :tags, dependent: :restrict_with_error
has_many :users, through: :badge_achievements
validates :badge_image, presence: true
validates :description, presence: true
validates :slug, presence: true
validates :title, presence: true, uniqueness: true
before_validation :generate_slug
def self.id_for_slug(slug)
select(:id).find_by(slug: slug)&.id
end
def path
"/badge/#{slug}"
end
private
def generate_slug
self.slug = CGI.escape(title.to_s).parameterize
end
end