选择选项,坚持选定的值

时间:2014-01-22 22:32:36

标签: ruby-on-rails ruby-on-rails-4 default-value

我正在尝试将用户选择放在options_for_select中。

继承我的代码:

<div class="form-group">
  <%= f.label :team_for, "I'm for" %> <br>
  <%= f.select :team_for, options_for_select(User::TEAMFOR), :prompt => "Please Select" %>
</div>

我该如何设置?

我的HTML输出:

<div class="form-group">
  <label for="user_team_for">I'm for</label> <br>
  <select id="user_team_for" name="user[team_for]">

  <option value="">Please Select</option>
  <option value="Team Druid">Team 1</option>
  <option value="Team Hunter">Team 2</option>
  <option value="Team Mage">Team 3</option>
  <option value="Team Paladin">Team 4</option>
  <option value="Team Priest">Team 5</option>
  <option value="Team Rogue">Team 6</option>
  <option value="Team Shaman">Team 7</option>
  <option value="Team Warrior">Team 8</option></select>
</div>

如果我选择某些内容,它会进入数据库并显示正确,但在编辑页面上不会显示选择,而是始终将“第1组”设置为已选中。

我需要显示所选的值。

1 个答案:

答案 0 :(得分:1)

options_for_select的第二个参数是选定的值:http://guides.rubyonrails.org/form_helpers.html#option-tags-from-a-collection-of-arbitrary-objects

  

options_for_select的第二个参数必须与期望的内部值完全相等。特别是如果值是整数2,则不能将“2”传递给options_for_select - 您必须传递2.请注意从params哈希中提取的值,因为它们都是字符串。

试试这个:

<%= f.select :team_for, options_for_select(User::TEAMFOR, @user.team_for), :prompt => "Please Select" %>