Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #443, fixes #455.
This adds support for actionable exceptions in Rails. For example, when a migration needs to be run it'll offer a button that can run the migrations for the user.
Original Actionable Errors PR in Rails: rails/rails#34788
This is what the original PR uses to create the button:
ActionView Helpers aren't loaded in the better errors view, so I instead opted to recreate the form myself using mostly the same variables. It's not a beautiful solution, but it works and I'm not sure if there's really a better way to work around that problem.
The button looks like this:
It's hidden from the user behind the overflow, so it only shows up on hover. We could probably make it more obvious, but I'm not sure how exactly we should do it.
Reproduction steps:
gem 'better_errors', git: 'https://github.com/connorshea/better_errors.git', branch: 'actionable-errors'
)rails s
or whatever your equivalent is for your app.rails g migration AddFooToBar
in your terminalPendingMigrationError
We'll also want to make sure better_errors still works on versions before Rails 6 that don't have actionable errors, and I guess add a test to better_errors for this behavior?