2

例如,如果我有一个属性限制为一个简短的值列表,例如:

ways = {:way_1 => 1, :way_2 => 2, :way_3 => 3}

对于这两种情况,处理此属性的最佳做法是什么:

  • 用户只能选择一个值(单选按钮)
  • 用户可以选择多个值(复选框)

对于第一种情况,我将使用在初始化程序中定义的哈希并保存整数值,对于第二种情况,我认为位操作来表示所有可能的组合。

在 Rails 3 中处理这两种情况是否有最佳实践?

编辑:我发现这个 gem BitmaskAttributes可以很好地处理位操作,但我仍然想知道这是否是最佳实践?

4

1 回答 1

2

您可以在模型的文本属性中使用数组并序列化此数组

class Expense < ActiveRecord::Base
  serialize :ways
  # other model code
end

然后在保存模型时,您可以这样做

Expense.new(:ways => [1, 2])
于 2013-04-28T18:49:03.333 回答