在form_for rails中选择

时间:2012-10-08 22:46:51

标签: ruby-on-rails forms

我做了什么:

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.select 前面省略 f。时,这些值是可见的,但是没有保存(我知道)。

1 个答案:

答案 0 :(得分: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