如何防止两个对象在Rails中具有相同的两个相同属性?

时间:2017-09-22 18:55:57

标签: ruby-on-rails

快速背景:我正在创建一个简单的应用,用户可以将其他用户添加为朋友。很多都来自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的方法可以防止创建具有两个相同属性的对象重复,如上所示?

0 个答案:

没有答案