Files
once-campfire/app/controllers/searches_controller.rb
T
David Heinemeier Hansson 659f95748a Preload only uncached messages and reduce rendering overhead (#292)
* Preload only uncached messages and reduce rendering overhead

* Keep benchmark summaries without raw JSON results

* Use Ruby benchmark drivers and keep generated results out of the repo
2026-10-04 12:36:36 -04:00

33 lines
703 B
Ruby

class SearchesController < ApplicationController
before_action :set_messages
def index
@query = query if query.present?
@recent_searches = Current.user.searches.ordered
@return_to_room = last_room_visited
end
def create
Current.user.searches.record(query)
redirect_to searches_url(q: query)
end
def clear
Current.user.searches.destroy_all
redirect_to searches_url
end
private
def set_messages
if query.present?
@messages = Current.user.reachable_messages.search(query).with_presentation.last_page_of(100)
else
@messages = Message.none
end
end
def query
params[:q]&.gsub(/[^[:word:]]/, " ")
end
end