You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I’m using jsonapi-resources in a Rails application that we’re upgrading to Rails 8 (Ruby 3.3.x).
With versions 0.9.12 and 0.10.1, basic CRUD operations work, but error handling and validation responses are broken — for example, validation errors return status 0 instead of 422, and ActionController::ForceSSL raises uninitialized constant errors since it’s no longer included in Rails 8.
Could you please confirm if Rails 8 compatibility is planned, or if there’s an active branch/fork that supports newer Rails versions?
Sorry, our modificaitons are includes setting for Claude Code, Docker (docker compose). We are currently testing the modifications. Once testing is complete, we plan to create a PR with those excluded.
✅ Validation tests correctly return 422 status code
Note on validation status code issue: We could not reproduce the "status 0" problem. All our validation tests correctly return 422 on Rails 8.0.4. This may have been fixed in other changes, or may require specific reproduction steps. If you have a reproducible test case, please share it.
If you'd like to try the speee fork with Rails 8.0 support:
#1501 makes the 0.9 line (release-0-9) work on Rails 7.0 through 8.1 and Ruby 3.4. That's the line apps still use when they're pinned through jsonapi-authorization (~> 0.9.0).
Both problems in this issue are already fixed on release-0-9, but neither has been released:
Fixes not covered elsewhere: Rails 7.2 removed ActiveSupport::Deprecation.warn, which made attribute :id and belongs_to raise NoMethodError. Also Ruby 3.4's csv, and Rack 3.1's :unprocessable_entity deprecation.
Proof: the gem's own suite now passes on Rails 7.0, 7.1, 7.2, 8.0 and 8.1.4.1 (Ruby 3.2 and 3.4), and still on 5.1 to 6.1 (Ruby 2.6 and 2.7). The CI matrix runs all of them, so it stays checked.
Activity
takaokouji commentedon Nov 10, 2025
We try to fix it, so please try it: speee#1 .
Sorry, our modificaitons are includes setting for Claude Code, Docker (docker compose). We are currently testing the modifications. Once testing is complete, we plan to create a PR with those excluded.
prabha1988 commentedon Nov 12, 2025
Thanks for the update! 👍
Got it — I’ll try out speee#1 and verify on my side.
Fix ActionController::ForceSSL compatibility with Rails 8.0+
takaokouji commentedon Jan 21, 2026
We've addressed the ActionController::ForceSSL compatibility issue in the speee fork.
Fixed Issue: ActionController::ForceSSL was removed in Rails 8.0, causing
uninitialized constanterrors.Solution: Added proper existence checking before including the ForceSSL module:
Test Results on Rails 8.0.4:
Note on validation status code issue: We could not reproduce the "status 0" problem. All our validation tests correctly return 422 on Rails 8.0.4. This may have been fixed in other changes, or may require specific reproduction steps. If you have a reproducible test case, please share it.
If you'd like to try the speee fork with Rails 8.0 support:
Merge pull request #23 from speee/fix/rails-8-forcessl-compatibility
MichalBryxi commentedon Nov 13, 2026
#1501 makes the 0.9 line (
release-0-9) work on Rails 7.0 through 8.1 and Ruby 3.4. That's the line apps still use when they're pinned throughjsonapi-authorization(~> 0.9.0).Both problems in this issue are already fixed on
release-0-9, but neither has been released:ActionController::ForceSSL: it's only included on Rails < 6.1.So what's needed is a 0.9.13. What #1501 adds beyond the earlier attempts:
master(0.10). It doesn't help 0.9 users.ActiveSupport::Deprecation.warn, which madeattribute :idandbelongs_toraiseNoMethodError. Also Ruby 3.4'scsv, and Rack 3.1's:unprocessable_entitydeprecation.