2012-04-25 37 views
0

我開始在Ruby On Rails中開發一個小應用程序。我有一個簡短的形式(在視圖中),在該領域的數量是可變的,並與下面的代碼片段創建:控制器方法內的訪問表單字段

<% for item in @event.items %> 
    <tr> 
     <td><%= item.name %></td> 
     <td><input type="number" name="quantity" /></td> 
    </tr> 
<% end %> 

我想後點擊「提交」,運行訪問到控制器的方法數據包含在表單中的每個字段中並在數據庫上執行插入。最後,我想要刷新頁面。

如何定製提交按鈕執行控制器功能的操作?我如何在這個函數內部訪問表單字段(其編號如前所述是可變的)。

在此先感謝您的幫助。

+0

向我們展示您的事件模式。 – slowpoison 2012-04-25 19:53:13

+0

create_table「events」,:force => true do | t | t.string 「名」 t.string 「本地」 t.text 「說明」 t.date 「EVENT_DATE」 t.datetime 「created_at」 t.datetime 「的updated_at」 t.integer 「USER_ID」 end create_table「items」,:force => true do | t | t.integer「event_id」 t.string「name」 t.integer「quantity」 t.datetime「created_at」 t.datetime「updated_at」 end – notGeek 2012-04-25 20:33:20

回答

1

您可以使用嵌套屬性。那麼它應該看起來像這樣(對不起,HAML):

= form_for @event do |f| 
    = f.fields_for :items do |item| 
    = item.object.name #displays item name 
    = item.number :quantity 

而在你的事件模型:

accepts_nested_attributes_for :items 

我建議在這種情況下nested_form寶石https://github.com/ryanb/nested_form使用。