声明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
我觉得这不是解决这种情况的最佳方法。任何帮助,将不胜感激。谢谢!
答案 0 :(得分:2)
如果您正在使用序列化程序,则无需为此编写包装器方法。您应该能够将任意对象分配给该字段:
ids = OfficeIds.new
ids.office_ids = [ 1, 2, 3 ]
ids.save
虽然有一个名为OfficeIds
的模型是相当奇怪的,因为这个willc的复数名称会引起各种麻烦。您确定不想要传统的has_many
关系吗?