I try to upgrade JR from v0.9 to the last commit of v-0-11-dev branche. I have found a problem (maybe a bug) when I want to include the polymorphic relation.
I have two tables:
- articles
- comments (with
commentable_id and commentable_type columns for polymorphic relation)
When I try to get articles?include=comments, JR return a relationship error.
Because in first step it find the articles in SQL Query:
SELECT articles.* FROM "articles" ORDER BY articles.id asc
And in second time, it try to find comments with the inverse relationship, with this Rails code:
But this relation not exists. And I don't want to create it because I want to find comments from Articles like:
Article.include(:comments)
Why this new JR strategy to find relation is inverted now ?
I search how we can fix this problem but I would like some help :D
Steps to Reproduce
Ruby: 3.3.6
Rails: 7.1.5
JR: branch v0-11-dev
Gemfile
gem "jsonapi-resources",
git: "https://github.com/cerebris/jsonapi-resources",
branch: "v0-11-dev"
Create tables in migration
class AddTables < ActiveRecord::Migration[7.1]
def change
create_table :articles do |t|
t.string :title
end
create_table :comments do |t|
t.string :content
t.references :commentable, polymorphic: true, index: true
end
end
end
Article Model
class Article < ApplicationRecord
has_many :comments, as: :commentable
end
Article Resource
class Api::V1::ArticleResource < JSONAPI::Resource
attributes :title
has_many :comments, exclude_links: :default, foreign_key_on: :related
end
Comment Model
class Comment < ApplicationRecord
belongs_to :commentable, polymorphic: true
end
Comment Resource
class Api::V1::CommentResource < JSONAPI::Resource
attributes :content
has_one :commentable, polymorphic: true, exclude_links: :default, polymorphic_types: ['Article']
end
Create routes in config/routes.rb
namespace :api do
namespace :v1 do
jsonapi_resources :articles
jsonapi_resources :comments
end
end
Now I want to get the articles and include comments with:
http://localhost:3000/api/v1/articles?include=comments
But this get return this following error:
Internal Server Error: Can't join 'Comment' to association named 'article'; perhaps you misspelled it?
Toggle to see the full backtrace
```
Internal Server Error: Can't join 'Comment' to association named 'article'; perhaps you misspelled it? /Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/activerecord-7.1.5.1/lib/active_record/associations/join_dependency.rb:225:in `find_reflection'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/activerecord-7.1.5.1/lib/active_record/associations/join_dependency.rb:230:in `block in build'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/activerecord-7.1.5.1/lib/active_record/associations/join_dependency.rb:229:in `each'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/activerecord-7.1.5.1/lib/active_record/associations/join_dependency.rb:229:in `map'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/activerecord-7.1.5.1/lib/active_record/associations/join_dependency.rb:229:in `build'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/activerecord-7.1.5.1/lib/active_record/associations/join_dependency.rb:73:in `initialize'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/activerecord-7.1.5.1/lib/active_record/relation/query_methods.rb:1494:in `new'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/activerecord-7.1.5.1/lib/active_record/relation/query_methods.rb:1494:in `construct_join_dependency'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/activerecord-7.1.5.1/lib/active_record/relation/query_methods.rb:1723:in `build_joins'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/activerecord-7.1.5.1/lib/active_record/relation/query_methods.rb:1581:in `build_arel'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/activerecord-7.1.5.1/lib/active_record/relation/query_methods.rb:1490:in `arel'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/bundler/gems/jsonapi-resources-d3c094b46a38/lib/jsonapi/active_relation/join_manager.rb:86:in `get_join_arel_node'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/bundler/gems/jsonapi-resources-d3c094b46a38/lib/jsonapi/active_relation/join_manager.rb:188:in `block (2 levels) in perform_joins'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/bundler/gems/jsonapi-resources-d3c094b46a38/lib/jsonapi/active_relation/join_manager.rb:175:in `each'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/bundler/gems/jsonapi-resources-d3c094b46a38/lib/jsonapi/active_relation/join_manager.rb:175:in `block in perform_joins'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/bundler/gems/jsonapi-resources-d3c094b46a38/lib/jsonapi/active_relation/join_manager.rb:174:in `each'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/bundler/gems/jsonapi-resources-d3c094b46a38/lib/jsonapi/active_relation/join_manager.rb:174:in `perform_joins'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/bundler/gems/jsonapi-resources-d3c094b46a38/lib/jsonapi/active_relation/join_manager.rb:48:in `join'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/bundler/gems/jsonapi-resources-d3c094b46a38/lib/jsonapi/active_relation_retrieval.rb:696:in `apply_joins'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/bundler/gems/jsonapi-resources-d3c094b46a38/lib/jsonapi/active_relation_retrieval.rb:663:in `apply_request_settings_to_records'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/bundler/gems/jsonapi-resources-d3c094b46a38/lib/jsonapi/active_relation_retrieval.rb:342:in `find_related_fragments_from_inverse'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/bundler/gems/jsonapi-resources-d3c094b46a38/lib/jsonapi/active_relation_retrieval.rb:302:in `find_included_fragments'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/bundler/gems/jsonapi-resources-d3c094b46a38/lib/jsonapi/resource_tree.rb:85:in `block in load_included'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/bundler/gems/jsonapi-resources-d3c094b46a38/lib/jsonapi/resource_tree.rb:77:in `each_key'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/bundler/gems/jsonapi-resources-d3c094b46a38/lib/jsonapi/resource_tree.rb:77:in `load_included'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/bundler/gems/jsonapi-resources-d3c094b46a38/lib/jsonapi/resource_tree.rb:140:in `block in complete_includes!'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/3.3.0/set.rb:501:in `each_key'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/3.3.0/set.rb:501:in `each'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/bundler/gems/jsonapi-resources-d3c094b46a38/lib/jsonapi/resource_tree.rb:140:in `complete_includes!'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/bundler/gems/jsonapi-resources-d3c094b46a38/lib/jsonapi/resource_tree.rb:120:in `initialize'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/bundler/gems/jsonapi-resources-d3c094b46a38/lib/jsonapi/processor.rb:387:in `new'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/bundler/gems/jsonapi-resources-d3c094b46a38/lib/jsonapi/processor.rb:387:in `find_resource_tree'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/bundler/gems/jsonapi-resources-d3c094b46a38/lib/jsonapi/processor.rb:370:in `find_resource_set'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/bundler/gems/jsonapi-resources-d3c094b46a38/lib/jsonapi/processor.rb:63:in `find'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/bundler/gems/jsonapi-resources-d3c094b46a38/lib/jsonapi/processor.rb:36:in `block (2 levels) in process'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/activesupport-7.1.5.1/lib/active_support/callbacks.rb:101:in `run_callbacks'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/bundler/gems/jsonapi-resources-d3c094b46a38/lib/jsonapi/processor.rb:35:in `block in process'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/activesupport-7.1.5.1/lib/active_support/callbacks.rb:101:in `run_callbacks'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/bundler/gems/jsonapi-resources-d3c094b46a38/lib/jsonapi/processor.rb:34:in `process'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/bundler/gems/jsonapi-resources-d3c094b46a38/lib/jsonapi/operation.rb:14:in `process'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/bundler/gems/jsonapi-resources-d3c094b46a38/lib/jsonapi/acts_as_resource_controller.rb:148:in `process_operation'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/bundler/gems/jsonapi-resources-d3c094b46a38/lib/jsonapi/acts_as_resource_controller.rb:122:in `block (3 levels) in execute_request'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/bundler/gems/jsonapi-resources-d3c094b46a38/lib/jsonapi/acts_as_resource_controller.rb:109:in `each'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/bundler/gems/jsonapi-resources-d3c094b46a38/lib/jsonapi/acts_as_resource_controller.rb:109:in `block (2 levels) in execute_request'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/activesupport-7.1.5.1/lib/active_support/callbacks.rb:101:in `run_callbacks'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/bundler/gems/jsonapi-resources-d3c094b46a38/lib/jsonapi/acts_as_resource_controller.rb:108:in `block in execute_request'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/bundler/gems/jsonapi-resources-d3c094b46a38/lib/jsonapi/acts_as_resource_controller.rb:140:in `process_operations'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/bundler/gems/jsonapi-resources-d3c094b46a38/lib/jsonapi/acts_as_resource_controller.rb:107:in `execute_request'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/bundler/gems/jsonapi-resources-d3c094b46a38/lib/jsonapi/acts_as_resource_controller.rb:86:in `process_request'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/bundler/gems/jsonapi-resources-d3c094b46a38/lib/jsonapi/acts_as_resource_controller.rb:21:in `index'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/actionpack-7.1.5.1/lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/actionpack-7.1.5.1/lib/abstract_controller/base.rb:224:in `process_action'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/actionpack-7.1.5.1/lib/action_controller/metal/rendering.rb:165:in `process_action'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/actionpack-7.1.5.1/lib/abstract_controller/callbacks.rb:259:in `block in process_action'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/activesupport-7.1.5.1/lib/active_support/callbacks.rb:121:in `block in run_callbacks'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/turbo-rails-2.0.13/lib/turbo-rails.rb:24:in `with_request_id'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/turbo-rails-2.0.13/app/controllers/concerns/turbo/request_id_tracking.rb:10:in `turbo_tracking_request_id'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/activesupport-7.1.5.1/lib/active_support/callbacks.rb:130:in `block in run_callbacks'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/actiontext-7.1.5.1/lib/action_text/rendering.rb:23:in `with_renderer'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/actiontext-7.1.5.1/lib/action_text/engine.rb:69:in `block (4 levels) in '
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/activesupport-7.1.5.1/lib/active_support/callbacks.rb:130:in `instance_exec'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/activesupport-7.1.5.1/lib/active_support/callbacks.rb:130:in `block in run_callbacks'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/activesupport-7.1.5.1/lib/active_support/callbacks.rb:141:in `run_callbacks'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/actionpack-7.1.5.1/lib/abstract_controller/callbacks.rb:258:in `process_action'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/actionpack-7.1.5.1/lib/action_controller/metal/rescue.rb:25:in `process_action'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/actionpack-7.1.5.1/lib/action_controller/metal/instrumentation.rb:74:in `block in process_action'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/activesupport-7.1.5.1/lib/active_support/notifications.rb:206:in `block in instrument'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/activesupport-7.1.5.1/lib/active_support/notifications/instrumenter.rb:58:in `instrument'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/activesupport-7.1.5.1/lib/active_support/notifications.rb:206:in `instrument'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/actionpack-7.1.5.1/lib/action_controller/metal/instrumentation.rb:73:in `process_action'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/actionpack-7.1.5.1/lib/action_controller/metal/params_wrapper.rb:261:in `process_action'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/activerecord-7.1.5.1/lib/active_record/railties/controller_runtime.rb:32:in `process_action'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/actionpack-7.1.5.1/lib/abstract_controller/base.rb:160:in `process'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/actionview-7.1.5.1/lib/action_view/rendering.rb:40:in `process'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/actionpack-7.1.5.1/lib/action_controller/metal.rb:227:in `dispatch'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/actionpack-7.1.5.1/lib/action_controller/metal.rb:309:in `dispatch'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/actionpack-7.1.5.1/lib/action_dispatch/routing/route_set.rb:49:in `dispatch'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/actionpack-7.1.5.1/lib/action_dispatch/routing/route_set.rb:32:in `serve'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/actionpack-7.1.5.1/lib/action_dispatch/journey/router.rb:51:in `block in serve'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/actionpack-7.1.5.1/lib/action_dispatch/journey/router.rb:131:in `block in find_routes'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/actionpack-7.1.5.1/lib/action_dispatch/journey/router.rb:124:in `each'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/actionpack-7.1.5.1/lib/action_dispatch/journey/router.rb:124:in `find_routes'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/actionpack-7.1.5.1/lib/action_dispatch/journey/router.rb:32:in `serve'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/actionpack-7.1.5.1/lib/action_dispatch/routing/route_set.rb:882:in `call'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/rack-3.1.13/lib/rack/tempfile_reaper.rb:20:in `call'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/rack-3.1.13/lib/rack/etag.rb:29:in `call'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/rack-3.1.13/lib/rack/conditional_get.rb:31:in `call'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/rack-3.1.13/lib/rack/head.rb:15:in `call'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/actionpack-7.1.5.1/lib/action_dispatch/http/permissions_policy.rb:36:in `call'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/actionpack-7.1.5.1/lib/action_dispatch/http/content_security_policy.rb:36:in `call'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/rack-session-2.1.0/lib/rack/session/abstract/id.rb:274:in `context'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/rack-session-2.1.0/lib/rack/session/abstract/id.rb:268:in `call'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/actionpack-7.1.5.1/lib/action_dispatch/middleware/cookies.rb:689:in `call'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/activerecord-7.1.5.1/lib/active_record/migration.rb:655:in `call'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/actionpack-7.1.5.1/lib/action_dispatch/middleware/callbacks.rb:29:in `block in call'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/activesupport-7.1.5.1/lib/active_support/callbacks.rb:101:in `run_callbacks'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/actionpack-7.1.5.1/lib/action_dispatch/middleware/callbacks.rb:28:in `call'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/actionpack-7.1.5.1/lib/action_dispatch/middleware/executor.rb:14:in `call'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/actionpack-7.1.5.1/lib/action_dispatch/middleware/actionable_exceptions.rb:16:in `call'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/actionpack-7.1.5.1/lib/action_dispatch/middleware/debug_exceptions.rb:29:in `call'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/web-console-4.2.1/lib/web_console/middleware.rb:132:in `call_app'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/web-console-4.2.1/lib/web_console/middleware.rb:28:in `block in call'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/web-console-4.2.1/lib/web_console/middleware.rb:17:in `catch'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/web-console-4.2.1/lib/web_console/middleware.rb:17:in `call'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/actionpack-7.1.5.1/lib/action_dispatch/middleware/show_exceptions.rb:31:in `call'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/railties-7.1.5.1/lib/rails/rack/logger.rb:37:in `call_app'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/railties-7.1.5.1/lib/rails/rack/logger.rb:24:in `block in call'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/activesupport-7.1.5.1/lib/active_support/tagged_logging.rb:139:in `block in tagged'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/activesupport-7.1.5.1/lib/active_support/tagged_logging.rb:39:in `tagged'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/activesupport-7.1.5.1/lib/active_support/tagged_logging.rb:139:in `tagged'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/activesupport-7.1.5.1/lib/active_support/broadcast_logger.rb:241:in `method_missing'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/railties-7.1.5.1/lib/rails/rack/logger.rb:24:in `call'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/sprockets-rails-3.5.2/lib/sprockets/rails/quiet_assets.rb:17:in `call'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/actionpack-7.1.5.1/lib/action_dispatch/middleware/remote_ip.rb:92:in `call'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/actionpack-7.1.5.1/lib/action_dispatch/middleware/request_id.rb:28:in `call'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/rack-3.1.13/lib/rack/method_override.rb:28:in `call'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/rack-3.1.13/lib/rack/runtime.rb:24:in `call'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/activesupport-7.1.5.1/lib/active_support/cache/strategy/local_cache_middleware.rb:29:in `call'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/actionpack-7.1.5.1/lib/action_dispatch/middleware/server_timing.rb:59:in `block in call'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/actionpack-7.1.5.1/lib/action_dispatch/middleware/server_timing.rb:24:in `collect_events'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/actionpack-7.1.5.1/lib/action_dispatch/middleware/server_timing.rb:58:in `call'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/actionpack-7.1.5.1/lib/action_dispatch/middleware/executor.rb:14:in `call'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/actionpack-7.1.5.1/lib/action_dispatch/middleware/static.rb:25:in `call'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/rack-3.1.13/lib/rack/sendfile.rb:114:in `call'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/actionpack-7.1.5.1/lib/action_dispatch/middleware/host_authorization.rb:141:in `call'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/railties-7.1.5.1/lib/rails/engine.rb:536:in `call'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/puma-6.6.0/lib/puma/configuration.rb:279:in `call'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/puma-6.6.0/lib/puma/request.rb:99:in `block in handle_request'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/puma-6.6.0/lib/puma/thread_pool.rb:390:in `with_force_shutdown'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/puma-6.6.0/lib/puma/request.rb:98:in `handle_request'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/puma-6.6.0/lib/puma/server.rb:472:in `process_client'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/puma-6.6.0/lib/puma/server.rb:254:in `block in run'
/Users/jason/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/puma-6.6.0/lib/puma/thread_pool.rb:167:in `block in spawn_thread'
Completed 500 Internal Server Error in 38ms (Views: 0.8ms | ActiveRecord: 1.4ms | Allocations: 19479)
```