Rails + Ransack - коллекция выпадающих списков? - программирование
Подтвердить что ты не робот

Rails + Ransack - коллекция выпадающих списков?

Я обожаю драгоценный камень ransack за его гибкость, однако я не могу заставить стандартную функцию collection_select функционировать должным образом. Возможно, кто-то может помочь.

Пример:

      <%= collection_select(:expense, :project_id, Project.all, 
        :id, :name, { prompt: 'Select Project'}, { class: 'span4' }) %>

в этом случае этот код находится на экране ввода затрат, поэтому первым параметром является объект затрат. Что это должно быть в форме разграбления? Кроме того, я знаю, что мне нужно получить там суффикс. В этом примере я хотел бы, чтобы project_id_eq был шаблоном поиска.

Кроме того, моя форма находится на контроллере и в представлении, называемом "отчеты", я не помещаю этот поиск в стандартные контроллеры.

Спасибо!

4b9b3361

Ответ 1

Кажется, что это сработает.

<%= f.select :project_id_eq, options_from_collection_for_select(Project.all, "id", "name", @search.project_id_eq) %>

Если у кого-то есть другое предложение, хотелось бы узнать и об этом.

Ответ 2

Чтобы сделать это с помощью 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 %>