Files
growstuff/app/models/concerns/likeable.rb
T
Daniel O'Connorandgoogle-labs-jules[bot] a349ce784a Optimize Like lookups in Likeable concern (#4799)
- Update liked_by? to return false if member is nil and use likes.exists?(member_id: member.id) instead of allocating login name arrays.
- Simplify liked_by_members_names to use members.pluck(:login_name).
- Update app/views/photos/_likes.html.haml to use photo.liked_by?(current_member).
- Add unit tests for liked_by? in spec/models/like_spec.rb.

Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
2026-09-20 13:46:02 +09:30

21 lines
395 B
Ruby

# frozen_string_literal: true
module Likeable
extend ActiveSupport::Concern
included do
has_many :likes, as: :likeable, inverse_of: :likeable, dependent: :delete_all
has_many :members, through: :likes
end
def liked_by?(member)
return false unless member
likes.exists?(member_id: member.id)
end
def liked_by_members_names
members.pluck(:login_name)
end
end