2011-06-03 15 views
2

我有2個模型 - 批次和submision。check_box_tag - 一對多關係

批次的has_many:提交 提交bel​​ongs_to的:一批

我的意見表中有一個字段/列存儲每個提交批次ID,

在我的新料的形式,用戶可以通過選擇意見書複選框並保存表單。這會將新創建的批次ID與選定的提交相關聯。

我目前使用下面的代碼來允許用戶選擇提交併保存表單,這反過來將創建一個新的批次並將新的批次ID與選定的提交相關聯。

代碼,選擇提交:

<% @subs.each do |submission| %> 
     <td><%= check_box_tag "batch[submission_ids][]", submission.SUB_ID, @batch.submissions.include?(submission) %></td> 
     <td><%= submission.SUB_ID %></td> 
     <td><%= submission.SUB_NAME %></td> 
    </tr> 
    <%end%> 

這似乎是工作的罰款,編輯時除外。

如果我創建一個新批次並將其與2個提交相關聯,然後編輯該特定批次並取消選擇所有提交併保存該批次,則不會保存更改。但是,如果我取消選擇一個提交或選擇另一個提交,則保存更改。

我只在編輯包含選定提交的批處理時出現此錯誤,並且在取消選擇所有預選提交後試圖保存該批處理。

我真的對此感到困惑,並認爲錯誤可能與check_box_tag有關。

如果有人能提供一些關於此的建議,我將不勝感激。

非常感謝您的幫助

回答

2

我遇到同樣的問題一次。事情是,未經檢查的框不會被髮送。來源:http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html#method-i-check_box

「疑難雜症 HTML規範說選中的複選框都沒有成功,因此,Web瀏覽器不給他們[...]」

雖然它說,check_box_tag應該沒問題(http://apidock.com/rails/ActionView/Helpers/FormTagHelper/check_box_tag ),我不得不通過隱藏的field_id來防止所有複選框被選中。

這是一般線索,但我希望它有幫助。你應該檢查日誌,如何以及如果id被傳遞(或者在沒有人的情況下以不同的方式處理)。

祝你好運!

+0

非常感謝santuxus ...會看看這個,並按照你的建議..櫥櫃:) – tanya 2011-06-04 00:50:45