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

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

问题描述:

这看起来很简单,但由于某种原因,我错过了一些关键的东西。在Rails中创建一个简单的下拉菜单

我有一个观点:

<% form_for :foo, @foo, :url => {:action => 'bar'} do |f|%> 
    <%= f.collection_select :range, FooModel::MONTHS%> 
    <%= submit_tag "Submit", :disable_with => "Submitting..." %> 
<% end %> 

我有一个模型:

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 

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

更新 看着它似乎我应该也许是调用PARAMS [:范围]?然而,这是零。

我觉得你的代码可以简化为以这种方式工作:

 
<% form_for @foo, :url => {:action => 'bar'} do |f| %> 
    <%= f.select :range, FooModel::MONTHS %> 
    <%= submit_tag "Submit", :disable_with => "Submitting..." %> 
<% end %> 

使用collection_select简单的情况下,像这样的一个可能是矫枉过正。 f.select应该足够了。

+0

改变它,现在我得到:未定义的方法`model_name'为第一行的NilClass:类。 – hector 2011-01-31 21:37:30