2016-11-24 141 views
2

我的文本字段的默认值显示为应该显示,但数字字段为空。Ruby on Rails number_field默认值不显示

<%= form_for(@game) do |f| %> 
    <%= render 'shared/error_messages', object: f.object %> 

    <%= f.label :nick_name, "Nickname: " %> (optional) 
    <%= f.text_field :nick_name, class: 'form-control', value: "newgame" %> 

    <%= f.label :players, "Number of players:" %> (3-8) 
    <%= f.number_field :players, class: 'form-control', value:3 %> 

    <%= f.submit "Create Game", class: "btn btn-primary" %> 
<% end %> 

的值显示了所产生的HTML源代码,但不显示:

<label for="game_nick_name">Nickname: </label> (optional) 
    <input class="form-control" value="newgame" type="text" name="game[nick_name]" id="game_nick_name" /> 

    <label for="game_players">Number of players:</label> (3-8) 
    <input class="form-control" value="3" type="number" name="game[players]" id="game_players" /> 

我想value: '3'并不会有所作为。 为了测试它与我的浏览器出了问题,就可以用输入字段自己我做了一个简单的HTML文件:

<input type='number' class='form-control' value=3> 

它显示如预期,所以我想它一定是与我的Rails应用程序的东西。

我不知道这是否与Input value doesn't display. How is that possible?有关,因为这是一款Rails应用程序。

+0

值应来自于记录本身。你不应该手动设置'value'属性。如果你正在尝试创建一个'new'记录,那么'value'应该是空的,如果你正在尝试编辑以前的记录,那么它默认会显示出来。 – Abhinay

+0

yes对于新的游戏对象,它不会显示默认值,在控制器中,当您初始化它时,您可以在其中设置一个值@game = Game.new(players:3 ....) –

回答

0

是这样,新的游戏对象不会显示一个默认值,在控制器当你初始化它,如果以前设置你可以设置一个值

@game = Game.new(players: 3)