2015-12-03 2 views
0

у меня есть список пользователей, называется DER, определенный с логическим полем der следующегопадение меню вниз заселен с конкретными пользователями в рельсах

def show 
@user = User.find(params[:id]) 
@ders = User.where(der: true, troop: @user.troop) 
... 

конец

Я хотел бы, чтобы создать выпадающее меню, в котором каждый параметр - это имя каждого der, но у меня возникают проблемы с вычислением <%= f.select %> заявлений в Ruby on Rails. Я пробовал кучу вариаций, и это является самым последним я попытался

<% der_array = User.where(der: true, troop: @user.troop).map { |der| [der.name, der.id] } %> 
<%= options_for_select(der_array) %> 

, но это только показывает текстовые значения имен МЭД не в выпадающем формате. Каким будет лучший способ получить раскрывающееся меню для заполнения именами DER и отправить их идентификатор контроллеру?

Edit: рабочий код

<%= form_for(@user) do |f| %> 
    <%= render 'shared/error_messages', object: f.object %> 
    <%= f.collection_select :id, @ders, :id, :name %> 
<% end %> 

ответ

3

вы можете попробовать collection_select

ввиду <%= f.collection_select :your_field, @ders, :id, :name %>

+0

Что бы ': your_field' быть в этом случае? Я не уверен, что это должно указывать на/reference – mjswartz

+0

, предположим, что select находится в блоке 'form_for @ model', это должно быть имя поля' @ model' – richfisher

+0

Наконец-то обзавелся этим, и он работает Великий! Спасибо. Проверьте мое редактирование для рабочего кода – mjswartz