1

我希望單選按鈕更新並反映未直接映射到屬性(它們設置在序列化數組中)的值。表單構建器中的單選按鈕,當不(直接)映射到屬性

我該如何使用表單生成器中的單選按鈕,因爲第二個參數應該反映第一個參數中屬性的值?

更新
這是怎樣一個radio_button助手通常構造:

f.radio_button :my_attribute, false 
f.radio_button :my_attribute, true 

If the current value of method (my_attribute) is tag_value (false or true) the radio button will be checked.

在我的情況下,雖然,my_attribute有多個值(這是一個序列化數組)。我試圖把一個attr_accessor作爲屬性的佔位符,但我需要一個參數傳遞給它能夠評估它的價值:/

更新2
- 迭代收集類別一用戶可以訂閱。
- 無線電按鈕對用於訂閱或不訂閱每個類別。
- 如果某個類別已訂閱,則會將其ID插入用戶的my_attribute中,如果取消訂閱,則會將其刪除。
- 此過程通常使用連接表完成,但我想將關係保存在數組中。

+0

能否請您詳細正是你想要的,或者你有嘗試任何事情之前,所以請加解釋問題 – SSR 2014-09-25 05:18:02

+0

因此,假設'my_attribute'是數組''[A,B,C]'。你想要什麼你的單選按鈕顯示?另外,你是在談論按鈕的_label_或_value_? – sebkkom 2014-09-25 13:37:26

+0

單選按鈕(實際上是一個窗體)位於迭代集合'[A,B,C,D,E,F,G]'內。由於'my_attribute'包含'A',所以第一次迭代應該導致一個真正的==檢查單選按鈕,而第四次迭代應該顯示false checked等。 – Numbers 2014-09-25 14:18:24

回答

0

我不知道我有完全明白你想要做什麼,而是怎麼樣像

my_attributes_array.each do |element| 
    f.radio_button :my_attribute, element 
end 
+0

謝謝,但要澄清:用我評論中的示例數據,封閉迭代集合有7個元素。因此,該頁面將有7對(「真」和「假」)的單選按鈕。 – Numbers 2014-09-25 14:55:49

+0

我的不好,但是如果你用實際的設置更新你的問題可能會有幫助:你有迭代集合*和*另一個屬性還是迭代集合屬性本身? – sebkkom 2014-09-25 15:10:52