【问题标题】:Best way to declare a rails array field?声明rails数组字段的最佳方法?
【发布时间】:2014-09-09 19:12:58
【问题描述】:

声明 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

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

【问题讨论】:

    标签: mysql arrays field


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-02-09
      • 1970-01-01
      • 2016-12-16
      • 2012-12-28
      • 2012-06-14
      • 1970-01-01
      • 2013-08-01
      • 2011-03-08
      相关资源
      最近更新 更多