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