Rails:序列化Ruby范围

时间:2016-08-24 12:11:04

标签: ruby-on-rails ruby serialization yaml rails-activerecord

我正在运行Rails 3.2.17(也尝试使用3.2.22)。 我在模型中序列化ruby Range时遇到了麻烦:

class MyModel < ActiveRecord::Base
  attr_accessible :my_column
  serialize :my_column, Range
end

当我尝试创建这样的记录时:

MyModel.create()
# Or like this
MyModel.create({my_column: (0..2)})

我有这个错误:

ArgumentError: wrong number of arguments (0 for 2..3)

我该如何解决这个问题?

修改

我找到了这样的方式:

class MyModel < ActiveRecord::Base
  attr_accessible :my_column
  # NO MORE SERIALIZE

  def my_column=(val)
    self[:my_column] = YAML.dump(val)
  end

  def my_column
    YAML.load(super || YAML.dump(nil))
  end
end

0 个答案:

没有答案