我是 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>
下拉选项映射及其值,然后您将获得该值。