Rails has_many没有belongs_to

时间:2015-06-30 22:36:58

标签: ruby-on-rails ruby activerecord has-many

我正在使用Rails 4并尝试实现一个Notif模型,该模型应该有一组已经看过它的用户。

我的想法是使用has_many关系(notif has_many :users),我在其中添加已经看到users通知的用户。我遇到的当前问题是我无法致电@notif.users,因为它指出column users.notif_id does not exist,因为我没有使用belongs_to

一种解决方案是使用多对多关系;但是,我希望避免为每个查看通知的用户创建单独的关联(尝试保存数据库空间)。

有没有办法有效地拥有users字段而没有has_many关系?我想我只是想在我的notif模型中存储一组用户ID。

2 个答案:

答案 0 :(得分:1)

如果你正在使用关系数据库,虽然这是一个正确的全向关系,但ActiveRecord不会很好地与你玩(如果有的话)。

此外,值得注意的是,在2015年,尝试查找全方位的ActiveRecord解决方法远比额外的数据库条目昂贵。

答案 1 :(得分:0)

技术上可行 - 但不是ActiveRecord的工作方式,也不会为您省钱。

并非所有数据库都支持数组类型。如果没有数组类型,则必须将id存储在字符串中,这几乎消除了任何有效的查询和连接形式。

即使是支持数组的数据库也不支持在数组中存储外键。这意味着你可以亲吻参照完整性再见。索引数组也可能不起作用。

除此之外,您无法在没有重大攻击的情况下使用Rails关联。

我希望你现在意识到省钱是一个非常愚蠢的计划。特别是因为与开发人员时间相比,数据库空间便宜。