class Characters::HearthController < ApplicationController def index @all_amenities = HearthAmenity.all.order(:id) @construct_activities = Activity.where("gid like ?", "construct_%") @amenity_activities = { forge: [], labratory: [], } Activity.where("gid like ?", "craft_%").each do |activity| next unless current_char.can_do_activity?(activity, ignore_cost: true, ignore_requirements: true) activity.whatnot[:requirements]&.each do |requirement_data| if requirement_data[:type] == "hearth_amenity" case requirement_data[:gid] when "forge" @amenity_activities[:forge].push(activity) && next when "labratory" @amenity_activities[:labratory].push(activity) && next else raise "Invalid amenity gid (#{requirement_data[:gid]}" end end end end end end