Rails 5: предварительно заполнить входные данные формы поиска, используя form_with с параметрами, без необходимости делать это вручную для каждого поля - PullRequest
0 голосов
/ 02 января 2019

Допустим, у нас есть простая форма поиска, которая отправляет запрос GET для поиска / фильтрации:

<%= form_with(scope: :search, url: url_for, local: false, method: :get) do |f| %>
  <%= f.text_field :title %>
<% end %>

Когда мы используем form_with (или старый form_for) с ActiveRecordобъект , все поля автоматически заполняются текущим значением атрибута объекта AR.

Но в приведенном выше примере, если мы используем только область (в нашем случае search), этого не произойдет, если мы откроем страницу с URL-адресом, например:

http://localhost:3000/blog?search%5title%5D=test

Несмотря на то, что URL заставит рельсы заполнить params[:search] для {title: 'test'}, нам все равно потребуется вручную передать значение для каждого поля, например:

<%= f.text_field :title, value: params.dig(:search, :title) %>

Это становится очень утомительным и подверженным ошибкам по мере роста формы поиска и кажется настолько распространенным требованием, что я не могу поверить, что нет более «рельсового» способа сделать это, не прибегая к чему-либокак Шаблон проектирования объектов формы .

Нет ли автоматического способа предварительного заполнения этих входов без необходимости вручную передавать значения из параметров?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...