声明rails数组字段的最佳方法是什么?

时间:2014-09-09 19:12:59

标签: mysql arrays field

声明Rails(4)数组字段(使用mysql数据库)的最佳方法/实践是什么?我需要将一些ID存储到该数组中。我尝试使用ActiveRecord Serializer执行此操作,并且我自定义了属性访问器,因此我的字段可以像数组一样。

class OfficeIds < ActiveRecord::Base
  serialize :office_ids

  def office_ids=(ids)
   ids = ids.join(",") if ids.is_a?(Array)
   write_attribute(:office_ids, ids)
  end

  def office_ids
   (read_attribute(:office_ids) || "").split(",")
  end 
end

我觉得这不是解决这种情况的最佳方法。任何帮助,将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:2)

如果您正在使用序列化程序,则无需为此编写包装器方法。您应该能够将任意对象分配给该字段:

ids = OfficeIds.new
ids.office_ids = [ 1, 2, 3 ]
ids.save

虽然有一个名为OfficeIds的模型是相当奇怪的,因为这个willc的复数名称会引起各种麻烦。您确定不想要传统的has_many关系吗?