Override Alchemy::Page.ransackable_scopes #2328
Merged
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.
Ransack has a feature by which one can pass the name of a scope to a
ransack query as the key of a query param with a value of true, like so:
This feature can be used very nicely in the page select for an
Alchemy::Ingredients::Page
to restrict that e.g. only public pages areavailable:
However, for that to work,
:published
must be in theAlchemy::Pages.ransackable_scopes
array. By default this methodreturns an empty array.
See https://github.com/activerecord-hackery/ransack/blob/be8c4642f927e8aa41204009c46c269158201cc7/lib/ransack/adapters/active_record/base.rb#L61-L68
for the origin of the method.
I've added a few more scopes that I think are fine to safelist here.
Checklist