@@ -47,7 +47,7 @@ def datagrid_label(filter_or_attribute, text = nil, **options, &block)
4747 # * `type` - special attribute the determines an input tag to be made.
4848 # Examples: `text`, `select`, `textarea`, `number`, `date` etc.
4949 # @return [String] an input tag for the corresponding filter name
50- def datagrid_filter_input ( attribute_or_filter , **options , &block )
50+ def datagrid_filter_input ( attribute_or_filter , select_choices : nil , select_options : nil , **options , &block )
5151 filter = datagrid_get_filter ( attribute_or_filter )
5252 options = add_filter_options ( filter , **options )
5353 type = options . delete ( :type ) &.to_sym
@@ -73,12 +73,12 @@ def datagrid_filter_input(attribute_or_filter, **options, &block)
7373 when :select
7474 select (
7575 filter . name ,
76- options . delete ( : select_choices) || object . select_choices ( filter ) || [ ] ,
76+ select_choices || object . select_choices ( filter ) || [ ] ,
7777 {
7878 include_blank : filter . include_blank ,
7979 prompt : filter . prompt ,
8080 include_hidden : false ,
81- **options . delete ( : select_options) ,
81+ **select_options ,
8282 } ,
8383 multiple : filter . multiple? ,
8484 **options ,
@@ -157,6 +157,7 @@ def datagrid_dynamic_field_options(options:, field:, filter:)
157157 options . merge (
158158 {
159159 type : :select ,
160+ select_choices : object . select_choices ( filter ) ,
160161 select_options : {
161162 selected : field ,
162163 } ,
0 commit comments