Ответ 1
Кажется, что это сработает.
<%= f.select :project_id_eq, options_from_collection_for_select(Project.all, "id", "name", @search.project_id_eq) %>
Если у кого-то есть другое предложение, хотелось бы узнать и об этом.
Я обожаю драгоценный камень ransack за его гибкость, однако я не могу заставить стандартную функцию collection_select функционировать должным образом. Возможно, кто-то может помочь.
Пример:
<%= collection_select(:expense, :project_id, Project.all,
:id, :name, { prompt: 'Select Project'}, { class: 'span4' }) %>
в этом случае этот код находится на экране ввода затрат, поэтому первым параметром является объект затрат. Что это должно быть в форме разграбления? Кроме того, я знаю, что мне нужно получить там суффикс. В этом примере я хотел бы, чтобы project_id_eq был шаблоном поиска.
Кроме того, моя форма находится на контроллере и в представлении, называемом "отчеты", я не помещаю этот поиск в стандартные контроллеры.
Спасибо!
Кажется, что это сработает.
<%= f.select :project_id_eq, options_from_collection_for_select(Project.all, "id", "name", @search.project_id_eq) %>
Если у кого-то есть другое предложение, хотелось бы узнать и об этом.
Чтобы сделать это с помощью include_blank, поставьте его вне круглых скобок:
Пример:
<%= f.select :languages_id_eq, options_from_collection_for_select(Language.all, "id", "name"), include_blank: true %>
== UPDATE ==
еще лучше, используйте f.collection_select
. Таким образом, после того, как пользователь выполнит поиск чего-либо с помощью раскрывающегося списка, эта опция предварительно выбирается на следующей странице:
<%= form.collection_select :vendor_id_eq, Vendor.all, :id, :name, include_blank: true %>