Implement state search with new model

This commit is contained in:
2025-10-08 08:22:04 -07:00
parent 7bf4073bd2
commit 55f712d043
4 changed files with 15 additions and 1 deletions

View File

@@ -5,7 +5,7 @@ module Api::V1
def index
parks = Park.all
if params[:state].present?
parks = parks.where("states like '%' || ? || '%'", params[:state])
parks = parks.joins(:states).where(parks_by_states: { state: params[:state] })
end
render json: {
total: parks.count,

View File

@@ -1,4 +1,7 @@
class Park < ApplicationRecord
has_many :alerts, foreign_key: :park_code, primary_key: :code,
inverse_of: :park, dependent: :destroy
has_many :states, class_name: "ParksByState",
foreign_key: :park_code, primary_key: :code,
inverse_of: :parks, dependent: :destroy
end

View File

@@ -1,2 +1,4 @@
class ParksByState < ApplicationRecord
has_many :parks, foreign_key: :park_code, primary_key: :code,
inverse_of: :states
end

9
spec/fixtures/parks_by_states.yml vendored Normal file
View File

@@ -0,0 +1,9 @@
# Read about fixtures at https://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html
one:
park_code: crla
state: OR
two:
park_code: olym
state: WA