我有一个 Rails 应用程序,其中有一个名为friendrequests
。它看起来像这样:
user1_id:integer user2_id:integer hasaccepted:boolean
我正在创建一个添加好友的选项,但好友请求只能发送一次。所以数据库的数据中不能有这样的东西:
user1_id | user2_id | hasaccepted
1 | 2 | false
1 | 2 | false
or
user1_id | user2_id | hasaccepted
1 | 2 | false
2 | 1 | false
user1_id/user2_id 组合必须是唯一的,而不是列本身,因此这是可能的:
user1_id | user2_id | hasaccepted
1 | 2 | false
1 | 3 | false
是否可以在模型中定义它?我怎样才能做到这一点?
对于第一种情况,在你的FriendRequest
型号、用途validates_uniqueness_of(:user1_id, :scope => :user2_id)
。您可能还需要相反的情况。对于第二种情况我会覆盖#validate
in FriendRequest
并在那里进行检查(请参阅API docs http://api.rubyonrails.org/classes/ActiveRecord/Validations.html#M002158有关该方法应如何执行的详细信息)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)