master
 1class Creation < ApplicationRecord
 2  validates :name, presence: true
 3  validates :category_id, presence: true
 4  belongs_to :user, counter_cache: true
 5  belongs_to :category
 6  has_many :photos, -> { order :created_at }, dependent: :destroy, as: :imageable
 7  has_many :favorites, :dependent => :destroy
 8  has_many :comments, dependent: :destroy
 9  acts_as_taggable_on :tags
10  alias_method :author, :user
11
12  def to_param
13    "#{id}-#{name.parameterize}"
14  end
15
16  def primary_image
17    published? ? photos.sample : Photo.new
18  end
19
20  def published?
21    photos.any?
22  end
23
24  def is_liked_by(user)
25    favorites.where(user: user).any?
26  end
27
28  def liked_by(user)
29    favorites.find_or_create_by(user: user)
30  end
31end