0

私がしたこと:

rails g scaffold game optionselect:string
rake db:migrate

form_for(@game)内の私の見解では:

<div class="field">
  <%= f.label :optionselect %><br />
  <%= f.select( :optionselect, "id", { "Option 1" => "1", "Option 2" => "2"}) %>
</div>

私がやりたいこと:

選択ボックスから値を選択し、選択した値を@game.optionselectに保存します

問題:選択可能な値が表示されません。fを省略したとき。f.selectの前に値は表示されていますが、保存されていません(私は知っています)。

4

1 に答える 1

2

このようなコレクションをモデルに保持し、それらを準備するためのクラスメソッドを作成することをお勧めします。例:

class Game < ActiveRecord::Base

  OPTIONS = [
    {:name => 'Option 1', :id => 1},
    {:name => 'Option 2', :id => 2},
    {:name => 'Option 3', :id => 3}
  ]

  def self.options
    OPTIONS.map{ |option| [option[:name], option[:id]] }
  end
end

次に、ビューで:

= f.select :optionselect, Game.options
于 2012-10-09T12:35:13.903 に答える