Does this work?
class ConsoleGame < ActiveRecord::Base
#self.table_name = 'console_game'
#self.primary_key = :id
has_many :configurations #, :class_name => 'Configuration'
end
class Configuration < ActiveRecord::Base
#self.table_name = 'configuration'
#self.primary_key = :id
belongs_to :console_game #, class_name: "ConsoleGame", primary_key: 'console_game_id', foreign_key: 'id' #added relationship for ConsoleGame
end
resource :configuration do
desc "Finds all configurations associated with a game."
params do
requires :game, type: String, desc: "Game search.", documentation: { example: 'Battlefield 3' }
end
route_param :game do
get do
#Search Configurations based on console game
Configuration.joins(:console_game).where(console_game:{value: 'Battlefield 3'})
end
end
end
Better yet add a scope
class Configuration < ActiveRecord::Base
#self.table_name = 'configuration'
#self.primary_key = :id
belongs_to :console_game #, class_name: "ConsoleGame", primary_key: 'console_game_id', foreign_key: 'id' #added relationship for ConsoleGame
scope :by_game,->(game){
#verbosely
#game_ids = ConsoleGame.where(value: game).pluck(:id)
#where(console_game_id: game_ids)
#one line
joins(:console_game).where(console_game:{value: game})
}
end
Use as
Configuration.by_game('Battlefield 3')
EDIT
I have commented out the lines that are not needed because they are implied by design