这是我的代码,其中包含一个包含下拉列表的表单 -
<div class="field">
<%= f.label :type, "Select profile type"%>
<%=
f.select :type, Profile::TYPES,
:prompt => "Select a profile type"
%>
</div>
下拉菜单看起来不错。但是,我如何检查选择了哪个选项?我想根据这个选择路由到不同的视图。
提前致谢!
答案 0 :(得分:1)
路由到不同视图的逻辑应该出现在控制器中。当用户提交此表单时,请检查参数的值,并执行逻辑以路由到视图:
class ExampleController
def routing
case params[:example][:type]
when 'foo'
redirect_to foo_path
when 'bar'
redirect_to bar_path
end
end
您可以创建自定义操作名称,因为此路由不是CRUD操作之一。如果是自定义名称,则需要将此路由放入config / routes.rb文件中。
或者,您可以绑定到select的onChange事件,如其他人所述,在用户更改值时自动提交表单。这仍然会将数据发送到控制器并执行重定向。这种方法的优点是,您可以将您的路线信息保留在Javascript以及Rail的控制器中。
有关Rails路由的更多信息,请访问:http://guides.rubyonrails.org/routing.html 有关Javascript绑定到onChange的更多信息,请访问:http://www.w3schools.com/jsref/event_onchange.asp
答案 1 :(得分:0)
您应该能够使用jQuery或任何其他流行的Javascript框架来实现此目的 - 附加onChange
侦听器或在某处设置值并检查它。事件,耶,等等。