1

これは本当に簡単に思えますが、何らかの理由で重要なものが欠けています。

私は見解を持っています:

<% 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 [:range]を呼び出す必要があるようです。しかし、それはゼロです。

4

1 に答える 1

2

私はあなたのコードがこのように機能するように単純化できると思います:

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

このような単純なケースにcollection_selectを使用するのは、おそらくやり過ぎです。f.selectで十分です。

于 2011-01-31T21:31:53.480 に答える