rails select_tag отображает другие значения параметров, чем select value

#ruby-on-rails #html-select

#ruby-on-rails #html-выберите

Вопрос:

У меня есть select_tag, который отображает количество и цену вместе:

 <% quant_price(quantity) = logic for quantity price breaks %>
<% @quantities = Array.new(1000) {|i| ((i   1) * 10) } %>
<%= select_tag(:quantity, options_for_select(@quantities.map {|q| ["#{q} ($#{quant_price(q)}/ea)", q] }, @line_item.present? ? @line_item.quantity : 10), :class => "quantity-picker", :style => "float: right; width: 90px;") %>
  

Это делает параметры выбора, которые появляются, когда пользователь нажимает на средство выбора количества, похожими:

 10 ($5.00/ea)
20 ($4.80/ea)
30 ($4.60/ea)
etc...
  

Но когда они выбирают опцию, в поле выбора отображается «10 ($ 5.00 / ea)». Я хочу, чтобы он просто считывал q значение в представлении выбора, а не дополнительные данные.

Как я могу сделать так, чтобы в окне выбора / выбора количества просто читалось «10»?

Комментарии:

1. Какова ваша фактическая цель здесь? При передаче пар options_for_select первое используется как текст, а второе — как значение. Параметры в браузере автоматически не меняют свой текст на свое значение при их выборе. Если вы хотите такого поведения, вам нужно использовать javascript.

2. Цель состоит в том, чтобы в представлении «выбрать» отображалось только значение параметра после выбора пользователем; не первая текстовая строка. Я пытался использовать JS для изменения innerHTML, но это не сработало.

3. @Alex Вы ожидаете показать выбранное значение вместо того, чтобы всегда показывать первый вариант как выбранный?

4. @SampatBadhe Да… Я хочу показать значение, выбранное в представлении выбора, после того, как пользователь нажмет на эту опцию

5. @Alex как насчет отображения quant_price как title(tooltip on hover) для выбранного элемента? <%= select_tag(:quantity, options_for_select(@quantities.map {|q| [q, q, {:title => "#{q} ($#{quant_price(q)}/ea)" }] }, @line_item.present? ? @line_item.quantity : 10), :class => "quantity-picker", :style => "float: right; width: 90px;") %>