使用复选框在Rails中设置标志的正确方法是什么?

时间:2012-03-01 00:49:54

标签: ruby-on-rails ruby-on-rails-3 forms

我有一个包含标志列的模型。列内部是表示标志状态的数字。启用的所有标志均由0b1111111表示,各个选项类似于0b0010000或0b0000001。我希望有一个带复选框的表单(在这种情况下是7个复选框),我希望将params [:flags]设置为按位或所选框。有谁知道这样做的方法?

1 个答案:

答案 0 :(得分:0)

你应该首先阅读bitwise numbers,因为你所存储的不是按位,你只需按顺序翻转7 0和1。

如果您希望按位使用存储整数,使用7复选框,您的列将需要支持最多256的数字。

check_box_tag有一个'checked'属性,您可以简单地将按位运算符传递给它返回一个布尔值

check_box_tag("name", value, (persisted_value | value of this checkbox))