Sha256: 400c1c50082384b07cf03ebe6346dc90e537b29c0eeb16d01e7b7c703d791d44

Contents?: true

Size: 627 Bytes

Versions: 9

Compression:

Stored size: 627 Bytes

Contents

module Blogelator
  class Tag < ActiveRecord::Base
    # Assocations
    has_and_belongs_to_many :posts

    # Validations
    validates :name, presence: true
    validates :slug, presence: true, uniqueness: true

    # Uses the slug as the :id parameter in URLs
    # @return [String]
    def to_param
      slug
    end

    # The URL for the blog post.
    # @return [String]
    def url(request = nil)
      @url ||= begin
        if request.try(:ssl?)
          "https://#{ENV.fetch('HOST')}/blog/tags/#{slug}"
        else
          "http://#{ENV.fetch('HOST')}/blog/tags/#{slug}"
        end
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
blogelator-1.0.9 app/models/blogelator/tag.rb
blogelator-1.0.7 app/models/blogelator/tag.rb
blogelator-1.0.6 app/models/blogelator/tag.rb
blogelator-1.0.5 app/models/blogelator/tag.rb
blogelator-1.0.4 app/models/blogelator/tag.rb
blogelator-1.0.3 app/models/blogelator/tag.rb
blogelator-1.0.2 app/models/blogelator/tag.rb
blogelator-1.0.1 app/models/blogelator/tag.rb
blogelator-1.0.0 app/models/blogelator/tag.rb