У меня должно быть 3 флажка OP, SE и PM. Если проверяется один или два или даже все три, представление будет фильтроваться в соответствии с проверенными значениями. Это employee_type
, и если я проверю OP, все сотрудники, принадлежащие к типу OP, покажут. У меня есть этот код, используя gem 'ransack'
на ruby on rails
Просмотр фильтра с использованием gem ransack с флажком
На мой index.html.erb
<%= search_form_for @filter do |f| %>
<%= f.check_box :employee_type, :value => 'OP', :id => 'checkOP' %>
<%= f.check_box :employee_type, :value => 'SE', :id => 'checkSE' %>
<%= f.check_box :employee_type, :value => 'PM', :id => 'checkPM' %>
<%= f.submit 'Filter' %>
<% end %>
<script type="text/javascript">
$('#checkOP').on('change', function() {
var val = this.checked ? this.value : '';
$('#index').html(val);
});
$('#checkSE').on('change', function() {
var val = this.checked ? this.value : '';
$('#index').html(val);
});
$('#checkPM').on('change', function() {
var val = this.checked ? this.value : '';
$('#index').html(val);
});
</script>
На мой employees_controller
def index
@filter = Employee.search(params[:q])
@employees = @filter.result
end
Там не должно быть кнопки, так как она должна фильтруется момент флажок установлен или снят флажок, но я использую кнопку только для проверки, так как в моем коде есть что-то неявное, которое не будет автоматически обнаружено, если флажок установлен или нет.
Кажется, в Интернете нет решения или я просто не мог найти правильные слова для поиска. Буду признателен за любую оказанную помощь.