2016-10-20 115 views
1

對於我的ERB,如果存在具有相同值但複選框不同的複選框,則在由於創建錯誤而導致新呈現後,將檢查具有相同值的不同表單的複選框。這似乎並不重要,他們不同的ID。ERB複選框具有不同的id但相同的值的行爲奇怪

我有幾個複選框模型選項與兩列:大小和:顏色。目前,我正在使用更大的模型來爲Option模型的accept_nested_attributes。

在我的形式,每個選項,我把一個複選框,潛在價值的顏色和複選框的尺寸,使得:上述

<%= form_for @big do |big| %> 

    <%= f.fields_for :options do |option| %> 
     <%= f.hidden_field :color, value: "Red" %> 
     <%= f.check_box :size, {}, "Small", nil %> 
    <% end %> 

    <%= f.fields_for :options do |option| %> 
     <%= f.hidden_field :color, value: "Blue" %> 
     <%= f.check_box :size, {}, "Small", nil %> 
    <% end %> 

    ..... 

<% end %> 

選項各有唯一的ID根據HTML和一切,但只是得到同樣的檢查,我懷疑是由於相同的價值。

有什麼辦法可以防止這種行爲?

回答

0

我解決了這個問題。 這更深深地植入了我的破舊控制器練習中與過度使用ERB fields_for混合在一起。

所以對於我的控制器,我只有一個@ bigmodel.options.build,而在控制器中我有四個f.fields_for選項。問題在於,大型模型與選項有一個關聯,因此所有選項都被平等對待,無論html輸出如何。

由於html輸出是唯一的,值提交是好的 - 沒有錯誤 - 但是當服務器端發生故障時,出現了很多問題必然會出現在html中。

相關問題