2013-11-25 27 views
1

通過在控制器此(指數)查看變量@eventtypes被分配4個值(運動,音樂會,喜劇戲劇&)Rails的參數沒有被上後

然後下面的表格中檢索4個選項,並顯示他們在下拉菜單中(HTML選擇框)

問題:當我提交此表單時,索引視圖顯示事件名稱&數字,但事件類型爲空。我是一個完全noob,但我懷疑我需要有一個「f」。開始「<%=選擇」的行中的某些內容。

請幫我理解解決方案。我使用的是最新的Rails 4和Ruby 2.0.0

<%= form_for(@tix) do |f| %> 
    <div class="field"> 
    <%= f.label :eventname %><br> 
    <%= f.text_field :eventname %> 
    </div> 
    <div class="field"> 
    <%= f.label :eventtype %><br> 
    <%= select(:eventtype, :eventtype, @eventtypes.collect {|e| [ e.category, e.id ] }) %> 
    </div> 
    <div class="field"> 
    <%= f.label :price %><br> 
    <%= f.number_field :price %> 
    </div> 
    <div class="actions"> 
    <%= f.submit %> 
    </div> 
<% end %> 
+0

是的,你需要一個'f.'在'select'前面。 – sevenseacat

+0

是的,你需要說f.select – ussferox

回答

1

你可能會拿起Kernel#select當你說:

<%= select(:eventtype, :eventtype, @eventtypes.collect {|e| [ e.category, e.id ] }) %> 

你想要select form helper

<%= f.select(... 

諮詢正確參數的文檔。

+0

謝謝你的迴應。我嘗試過購買添加'f。'創建一個錯誤......「未定義的方法'merge'for [[」音樂會「,1],[」體育「,2],[」劇院「,3],[」喜劇「,4]]:數組」 – AxleMax

+0

這是因爲你傳遞選項數組,它期望一些選項:http ://api.rubyonra ils.org/classes/ActionView/Helpers/FormBuilder.html#method-i-select –