Skip to content

Commit 3833827

Browse files
fuegasrobotfelix
authored andcommitted
Fix filter on enum value in list view
Filtering on enum (in list view) gave the following error: ``` ActionView::Template::Error (undefined method `[]' for nil:NilClass (bindings[:object] || abstract_model.model.new).send(enum_method) ^^^^^^^^^): 54: <div id="list"> 55: <%= form_tag(index_path(params.except(*%w[page f query])), method: :get) do %> 56: <div class="card mb-3 p-3 bg-light"> 57: <div class="row" data-options="<%= ordered_filter_options.to_json %>" id="filters_box"></div> 58: <hr class="filters_box" style="display:<%= ordered_filters.empty? ? 'none' : 'block' %>"/> 59: <div class="row"> 60: <div class="col-sm-6"> rails_admin (3.1.2) lib/rails_admin/config/fields/types/enum.rb:32:in `block in <class:Enum>' rails_admin (3.1.2) lib/rails_admin/config/configurable.rb:77:in `instance_eval' rails_admin (3.1.2) lib/rails_admin/config/configurable.rb:77:in `block in register_instance_option' rails_admin (3.1.2) lib/rails_admin/config/fields/types/enum.rb:14:in `block in <class:Enum>' rails_admin (3.1.2) lib/rails_admin/config/configurable.rb:77:in `instance_eval' rails_admin (3.1.2) lib/rails_admin/config/configurable.rb:77:in `block in register_instance_option' rails_admin (3.1.2) lib/rails_admin/config/fields/base.rb:106:in `filter_options' ``` This is because bindings is nil and thus the hash lookup fails. By adding safe navigation we circumvent this error and use the second option namely `abstract_model.model.new`.
1 parent 86d8000 commit 3833827

File tree

1 file changed

+1
-1
lines changed
  • lib/rails_admin/config/fields/types

1 file changed

+1
-1
lines changed

lib/rails_admin/config/fields/types/enum.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ class Enum < RailsAdmin::Config::Fields::Base
2828
if abstract_model.model.respond_to?(enum_method)
2929
abstract_model.model.send(enum_method)
3030
else
31-
(bindings[:object] || abstract_model.model.new).send(enum_method)
31+
(bindings&.[](:object) || abstract_model.model.new).send(enum_method)
3232
end
3333
end
3434

0 commit comments

Comments
 (0)