如何在rails中的两列中验证唯一ID?

时间:2015-11-13 17:49:32

标签: ruby-on-rails activerecord

我知道要防止这种情况发生:

user_id:10 | friend_id:20

user_id:10 | friend_id:20

您可以使用

validates :user_id, uniqueness: {scope: :friend_id}

但是如果你想阻止用户将自己添加为他自己的朋友呢?

user_id:10 | friend_id:10

1 个答案:

答案 0 :(得分:2)

这应该有效。您确保friend_id不等于user_id

validates :friend_id, exclusion: {in: ->(u) { [u.user_id] }}