class FairyController < ApplicationController def mark instance_id, location = mark_params instance = Instance.find_by(public_id: instance_id) if params[:pwd] fairy = Fairy.new(location: location, instance_id: instance.id) fairy.save end new_instance = Instance.includes(:fairies).find(instance.id) render partial: "instance/fairies", locals: { instance: new_instance } end def unmark instance_id, location = mark_params if params[:pwd] instance = Instance.find_by(public_id: instance_id) Fairy.delete_by(instance_id: instance.id, location: location) new_instance = Instance.includes(:fairies).find(instance.id) render partial: "instance/fairies", locals: { instance: new_instance } end end def despawn instance_id, location = mark_params instance = Instance.find_by(public_id: instance_id) fairy = Fairy.find_by(instance_id: instance.id, location: location) unless fairy.is_despawned fairy.is_despawned = true fairy.save new_instance = Instance.includes(:fairies).find(instance.id) render partial: "instance/fairies", locals: { instance: new_instance } end end private def mark_params params.expect(:instance, :location) end end