防止通过has_many通过关系类型创建反向友谊

时间:2017-07-06 15:53:06

标签: ruby-on-rails facebook rails-activerecord ruby-on-rails-5

我正在为一个项目创建一个facebook克隆,而且我无法阻止为技术上存在的关系创建友谊。

例如,A人向接受B的人发送朋友请求。这创建了一个记录,其中人A =" user_id"和人B =" friend_id"。使用此行阻止人员A在数据库级别向人员B发送另一个朋友请求:

t.index ["user_id", "friend_id"], name: "index_friendships_on_user_id_and_friend_id", unique: true, using: :btree

但是,B人仍然可以向A人发送请求没问题。我尝试用上面的反面来防止这种情况:

t.index ["friend_id", "user_id"], name: "index_friendships_on_friend_id_and_user_id", unique: true, using: :btree

我现在意识到这仍然允许创建一个反向友谊,但不再有DUPLICATE反向关系....

所以,我想我需要编写一个自定义回调(原谅我,如果我在整个错误的术语中),它会在保存记录之前检查数据库是否有重复的友谊,对吗?

0 个答案:

没有答案