как получить выбранное значение из выпадающего списка в рубине на рельсах? - PullRequest
0 голосов
/ 26 сентября 2019

Я новичок в ruby ​​на рельсах, пожалуйста, помогите мне с этим простым кодом: мне нужно напечатать 'HI', если опция 1 выбрана, 'BONJOUR', если опция 2, 'HOLA', если опция 3, 'NAMASTE', если опция 4.

при выборе значения в раскрывающемся списке и нажатии кнопки

<%= form_for :person do |f| %>
  <%= f.select :desired_attribute, ['option1','option2','option3','option4']%>
  <%= button_to "Show Text" , :onclick => "show_back(), return false" %>
<% end %>

Ответы [ 2 ]

1 голос
/ 26 сентября 2019

задействуйте ваш сервер.

просмотр.Добавьте remote: true к вашей форме.И обработать запрос ajax в контроллере. больше о ajax в рельсах

<%= form_for :person, remote: true do |f| %>
  <%= f.select :desired_attribute, options_for_select([ ['option1', '1'],['option2', '2'],['option3', '3'],['option4', '4']]) %>
  <%= button_to "Show Text" , :onclick => "show_back(), return false" %>
<% end %>

в вашем контроллере

class PersonsController
  MY_HASH = { '1': 'HI', '2': 'BONJOUR', '3': 'HOLA', '4': 'NAMASTE' }

  def name_of_action
    respond_to do |format|
      format.js { render 'your_partial_name', name: MY_HASH[params[:person][:desired_attribute]] }
  end
end

your_partial_name.js.erb

alert("<%= name %>");

Вместо MY_HASH лучше использовать I18n для решения языковых проблем. подробнее о I18n

0 голосов
/ 26 сентября 2019

Используйте этот синтаксис:

<%= f.select :point1, options_for_select([ ['option1', 'HI'],['option2', 'BONJOUR'],['option3', 'HOLA'],['option4', 'NAMASTE']]) %>

вы будете выпадать так:

<select id="point1">
  <option value="HI">option1</option>
  <option value="BONJOUR">option2</option>
  <option value="HOLA">option3</option>
  <option value="NAMASTE">option4</option>
</select>

Карта опций выпадающего меню со значением, затем вы получите значение.

...