在Rails中创建一个简单的下拉菜单

这看起来很简单但由于某种原因,我错过了一些关键的东西。

我有一个观点:

 {:action => 'bar'} do |f|%>   "Submitting..." %>  

我有一个模特:

 class FooModel < ActiveRecord::Base MONTHS = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep'] end 

我有一个控制器:

 def new @foo = FooModel.new end def index respond_to do |format| format.html # index.html.erb end end def bar if params[:foo] @foos = params[:foo].inspect end respond_to do |format| format.html # index.html.erb end end 

我的问题是,如何在单击“提交”按钮时获取有关选择了哪个combobox元素的信息? 它似乎不是params [:foo],@ foo或其他任何我能想到的东西。

更新看着它好像我应该调用params [:range]? 但是,这是零。

我认为您的代码可以简化为以这种方式工作:

 <%form_for @foo,:url => {:action =>'bar'} do | f |  %>
   <%= f.select:range,FooModel :: MONTHS%>
   <%= submit_tag“提交”,:disable_with =>“正在提交...”%>
 <%end%>

对于像这样的简单案例使用collection_select可能有点过分。 f.select应该足够了。