module Phcscriptcdnpro class Script::Listing < ApplicationRecord # Clean URL Initialize extend FriendlyId # Add Paper Trail has_paper_trail :class_name => 'Phcscriptcdnpro::ListingVersions' # Relationships has_many :urls, class_name: 'Phcscriptcdnpro::Script::Url' belongs_to :author, class_name: 'Phcscriptcdnpro::Script::Author' belongs_to :licence, class_name: 'Phcscriptcdnpro::Script::Licence' # Validation for Form Fields validates :script_tittle, presence: true, length: { minimum: 3 } validates :script_description, presence: true, length: { minimum: 4 } validates :script_source, length: { minimum: 5 } validates :script_website, length: { minimum: 5 } validates :script_github, length: { minimum: 5 } # Clean URL Define friendly_id :phcscriptcdnpro_listing_slug, use: [:slugged, :finders] # Define for Multiple Records def phcscriptcdnpro_listing_slug [ [:script_tittle, :version] ] end end end