Files
growstuff/app/models/like.rb
Daniel O'Connor 8cfef5ce1a Rubocop fixes
2026-04-26 13:09:00 +00:00

29 lines
690 B
Ruby

# frozen_string_literal: true
class Like < ApplicationRecord
belongs_to :member
belongs_to :likeable, polymorphic: true, counter_cache: true, touch: true
validates :member, :likeable, presence: true
validates :member, uniqueness: { scope: :likeable }
validate :member_is_not_blocked
def likeable_author
if likeable.respond_to?(:author)
likeable.author
elsif likeable.respond_to?(:owner)
likeable.owner
end
end
private
def member_is_not_blocked
return unless member
author = likeable_author
return unless author&.already_blocking?(member)
errors.add(:base, "You cannot like content of a member who has blocked you.")
end
end