Mysql 声明rails数组字段的最佳方法?
声明Rails(4)数组字段(使用mysql数据库)的最佳方式/实践是什么?我需要将一些ID存储到该数组中。我尝试使用ActiveRecord序列化程序来实现这一点,并自定义了属性访问器,以便我的字段可以像数组一样工作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_
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的模型是相当奇怪的,因为它的复数名会引起各种各样的麻烦。你确定你不想让传统的与这些有很多关系吗