2016-11-24 145 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)