我正在尝试使用每个项目上的integer []类型的字段来开发
标记(在
标记表中)和项目(在项目表中)之间的多对多关系.
我知道Rails 4(和通过postgres_ext的Rails 3)通过:array =>支持Postgres的数组功能. true参数,但我无法弄清楚如何将它们与Active Record关联结合起来.
has_many有这个选项吗?这有宝石吗?我应该放弃并且只是创建一个has_many:through关系(虽然关系数量我预计这可能是无法管理的)?
你真正需要做的就是
def tags
Tag.where(id: tag_ids)
end
def add_tag(tag)
self.tag_ids += [tag.id] unless tag_ids.include?(tag.id)
end
至少那是我现在所做的.我用哈希(hstore)和权限做了一些非常酷的东西.处理标记的一种方法是创建has_many,并将标记保留在字符串数组列中,因为它们是为了方便和性能而添加的(不必查询2个相关表只是为了获取名称).我不一定要使用活动记录来对数据库做很酷的事情.