快速背景:我正在创建一个简单的应用,用户可以将其他用户添加为朋友。很多都来自railscast。为此,我创建了一个Friendship
模型来跟踪我添加的User
。
这就是我所拥有的:
#Friendship.all
[#<Friendship id: 3, user_id: 6, friend_id: 5, created_at: "2017-09-19 ...
#<Friendship id: 13, user_id: 1, friend_id: 2, created_at: "2017-09-22 17:33:47", updated_at: "2017-09-22 17:33:47">,
#<Friendship id: 14, user_id: 1, friend_id: 2, created_at: "2017-09-22 18:47:52", updated_at: "2017-09-22 18:47:52">]>
请注意,我(user1
)目前能够两次添加同一个用户。如果您查看Friendship.all
的结果,则最后两个结果为user_id: 1, friend_id: 2
两次。
简而言之,我需要确保我的Friendship
模型没有两个匹配的属性,如上所述。由于user1
,我不应该被允许两次添加user2
。我不认为Rails'uniqueness
验证在这种情况下有效。
是否有Rails的方法可以防止创建具有两个相同属性的对象重复,如上所示?