2015-10-06 2 views
0

У меня есть раскрывающийся список, который я пытаюсь заполнить результатами ActiveRecord. Думаю, я не понимаю, как получить доступ к значениям, которые я извлекаю, потому что код ниже заполняет мое раскрывающееся меню такими значениями, какЗаполнение выпадающего списка со значениями из запроса ActiveRecord

#<Product:0x007f1f488565b0>, что явно не то, что я хочу.

<%= f.select :accessory, options_for_select(Product.select(:item_number, :id).where(:accessory=> 't') {|c| [ c.item_number, c.id ] }), {include_blank: true}, { :class => 'form-control'} %> 

Как я могу заполнить выпадающий номер и идентификатор элемента? В этом запросе нет отношения. Мне просто нужен список продуктов, которые отмечены знаком «t» для аксессуаров.

ответ

0

Вы так близко :-)

Параметр для options_for_select должен быть объект перечислимого объектов, которая отвечает: первый и последний:

Вы проезжаете

Product.select(:item_number, :id).where(:accessory=> 't') 

как параметр. Но я думаю, что вы хотите передать

Product.select(:item_number, :id).where(:accessory=> 't') 
    .map{|c| [ c.item_number, c.id ] }) 

Вы просто забыли поставить «карта».

Ruby позволяет передать блок любому методу, поэтому вы не получите никаких предупреждений или ошибок, но блок будет просто проигнорирован.

+0

Thank you Mark! 'Product.select (: item_number,: id) .where (: accessory =>' t '). Map {| c | [c.item_number, c.id]} работал. – mack

Смежные вопросы