下拉选择红宝石栏杆

时间:2011-07-28 00:14:01

标签: ruby-on-rails ruby ruby-on-rails-3

这是我的代码,其中包含一个包含下拉列表的表单 -

<div class="field">
<%= f.label :type, "Select profile type"%>
<%=
f.select :type, Profile::TYPES,
:prompt => "Select a profile type"
%>
</div>

下拉菜单看起来不错。但是,我如何检查选择了哪个选项?我想根据这个选择路由到不同的视图。

提前致谢!

2 个答案:

答案 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侦听器或在某处设置值并检查它。事件,耶,等等。