如何从Ruby on Rails中单击的下拉列表中获取所选值?



我是 Ruby on Rails 的新手,请帮我写这个简单的代码: 我需要打印 如果选择了选项 1,则为"HI" 如果选项2,则为"BONJOUR", "HOLA",如果选项3, 如果选项4,则为"NAMASTE"。

在下拉列表中选择一个值并单击按钮,

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

涉及您的服务器。

视图。将remote: true添加到表单中。并在控制器中处理 ajax 请求。更多关于 AJAX in Rails

<%= 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

使用以下语法:

<%= 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>

下拉选项映射及其值,然后您将获得该值。

最新更新