Mysql 声明rails数组字段的最佳方法?

Mysql 声明rails数组字段的最佳方法?,mysql,arrays,field,Mysql,Arrays,Field,声明Rails(4)数组字段(使用mysql数据库)的最佳方式/实践是什么?我需要将一些ID存储到该数组中。我尝试使用ActiveRecord序列化程序来实现这一点,并自定义了属性访问器,以便我的字段可以像数组一样工作 class OfficeIds < ActiveRecord::Base serialize :office_ids def office_ids=(ids) ids = ids.join(",") if ids.is_a?(Array) write_

声明Rails(4)数组字段(使用mysql数据库)的最佳方式/实践是什么?我需要将一些ID存储到该数组中。我尝试使用ActiveRecord序列化程序来实现这一点,并自定义了属性访问器,以便我的字段可以像数组一样工作

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
classoficeid

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

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

ids = OfficeIds.new
ids.office_ids = [ 1, 2, 3 ]
ids.save
不过,有一个名为
OfficeID的模型是相当奇怪的,因为它的复数名会引起各种各样的麻烦。你确定你不想让传统的
与这些有很多关系吗