Ruby on rails 如何验证唯一id';在rails中的两列中是什么?

Ruby on rails 如何验证唯一id';在rails中的两列中是什么?,ruby-on-rails,activerecord,Ruby On Rails,Activerecord,我知道为了防止这种情况发生: 用户id:10 |朋友id:20 用户id:10 |朋友id:20 你可以用 validates :user_id, uniqueness: {scope: :friend_id} 但是,如果您想阻止用户将自己添加为自己的朋友,该怎么办 用户id:10 |朋友id:10这应该有效。您正在确保friend_id不能等于user_id validates :friend_id, exclusion: {in: ->(u) { [u.user_id] }}

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

用户id:10 |朋友id:20

用户id:10 |朋友id:20

你可以用

validates :user_id, uniqueness: {scope: :friend_id}
但是,如果您想阻止用户将自己添加为自己的朋友,该怎么办


用户id:10 |朋友id:10

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

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