Как сделать радиокнопки непонятными после отправки фильтра Rails

У меня есть приложение Rails с фильтром. Фильтр состоит из двух переключателей. Если выбран переключатель «en», отображаются англоязычные пользователи, то же самое с «es» и испанскими пользователями.

Это прекрасно работает. Я могу фильтровать для английских и испанских пользователей. Однако при отправке формы выбранный переключатель очищается.

Как сделать так, чтобы выбранный переключатель оставался выбранным после отправки формы?

_filter.html.erb:

<%= form_with url: '/filter_users', method: :get do | form|%>
  <%= form.radio_button :language, 'en', onclick: "this.parentNode.submit();"%>
  <%= form.label :language_en, 'en' %>
  <%= form.radio_button :language, 'es', onclick: "this.parentNode.submit();" %>
  <%= form.label :language_es, 'es' %>
<% end %>

контроллер:

  def filter_users
    @users = User.all
    @users = @users.filter_by_language(params[:language]) if params[:language].present?
  end

модель:

class User < ApplicationRecord
  scope :filter_by_language, ->(language) { where language: language }
end

Надеюсь, мой вопрос понятен. Спасибо

Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
0
0
19
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете передать checked: true в хеше параметров, чтобы сохранить значение.

<%= form_with url: '/filter_users', method: :get do | form|%>
  <%= form.radio_button :language, 'en', checked: params[:language] == 'en', onclick: "this.parentNode.submit();"%>
  <%= form.label :language_en, 'en' %>
  <%= form.radio_button :language, 'es', checked: params[:language] == 'es', onclick: "this.parentNode.submit();" %>
  <%= form.label :language_es, 'es' %>
<% end %>

переключатель

спасибо! это то же самое для флажков?

sam 06.05.2022 07:47

да - см. это - api.rubyonrails.org/classes/ActionView/Helpers/…

Sampat Badhe 06.05.2022 08:07

Другие вопросы по теме