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