mirror of
https://github.com/basecamp/once-campfire.git
synced 2026-03-13 21:55:15 +09:00
19 lines
365 B
Ruby
19 lines
365 B
Ruby
class Search < ApplicationRecord
|
|
belongs_to :user
|
|
|
|
after_create :trim_recent_searches
|
|
|
|
scope :ordered, -> { order(updated_at: :desc) }
|
|
|
|
class << self
|
|
def record(query)
|
|
find_or_create_by(query: query).touch
|
|
end
|
|
end
|
|
|
|
private
|
|
def trim_recent_searches
|
|
user.searches.excluding(user.searches.ordered.limit(10)).destroy_all
|
|
end
|
|
end
|