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 回答