вы можете использовать @mpapis подход, который вполне соответствует вашему вопросу с небольшим улучшением:
<% [:date_from, :date_to, :from_hh, :from_mm, :from_ampm, :to_hh, :to_mm, :to_ampm].select{|field| params[field].present? }.each do |field| %>
<%= hidden_field_tag field, params[field] %>
<% end %>
Но если поля разные, но вам все равно нужно проверить blank?
для параметров, вы можете использовать помощники форм с оператором:
# Before
<% unless params[:date_from].blank? %>
<input type="hidden" name="date_from" value="<%= params[:date_from] %>"/>
<% end %>
# After
<%= hidden_field_tag :date_form, params[:date_form] if params[:date_form].present? %>
Так что теперь вы можете комбинировать все виды элементов формы:
<%= text_field_tag :date_form, params[:date_form] if params[:date_form].present? %>
<%= select_tag :date_form, params[:date_form] if params[:date_form].present? %>
и т.д.