Skip to content

Commit 2cb1372

Browse files
committed
chore: Override filter_resources
1 parent d0bc702 commit 2cb1372

2 files changed

Lines changed: 17 additions & 2 deletions

File tree

lib/administrate_ransack/searchable.rb

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,11 @@
44

55
module AdministrateRansack
66
module Searchable
7-
def scoped_resource
7+
def filter_resources(resources, search_term:)
88
options = respond_to?(:ransack_options, true) ? ransack_options : {}
99
distinct = respond_to?(:ransack_result_distinct, true) ? ransack_result_distinct : true
10-
@ransack_results = prepare_search(resource_collection: super, query_params: params[:q], options: options)
10+
query = params[:q] || parse_search_term(search_term)
11+
@ransack_results = prepare_search(resource_collection: resources, query_params: query, options: options)
1112
@ransack_results.result(distinct: distinct)
1213
end
1314

@@ -28,6 +29,11 @@ def prepended(base)
2829

2930
private
3031

32+
def parse_search_term(search_term)
33+
terms = search_term.split.map { _1.split(':') }.select { |k, v| v.present? && k.present? }
34+
terms.to_h.transform_keys { "#{_1}_cont" }
35+
end
36+
3137
def prepare_search(resource_collection:, query_params:, options:)
3238
resource_collection.ransack(query_params, **options)
3339
rescue ArgumentError => e

spec/dummy/app/views/admin/posts/index.html.erb

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,15 @@
3030
</style>
3131
<% end %>
3232

33+
<%=
34+
render("index_header",
35+
resources: resources,
36+
search_term: search_term,
37+
page: page,
38+
show_search_bar: show_search_bar,
39+
)
40+
%>
41+
3342
<section class="main-content__body main-content__body--flush">
3443
<%= render(
3544
"collection",

0 commit comments

Comments
 (0)