Last Updated: 2021-05-15
I had the following code:
<%= form_with(model: @tutor_search_form) %> <div class="layout__one_of_two_columns"> <%= f.label "Online" %> <%= f.check_box :online_available, checked: true %> ... <% end %>
I wanted the params (e.g. whether
online_available was checked or not) to be
preserved after failed validations or when revisiting the search with a
search again button.
Unfortunately, no matter what, the box remained checked...
The issue was that the
check_box did not update its checked status based on
@tutor_search_form state; it was fixed to
true. Therefore the parameters
weren't preserved when revisiting the search. I fixed this by removing the
checked: true bit and instead achieving the desired effect setting the default
online_available to be true when initializing
@tutor_search_form in the
controller and then letting the data percolate down.