我有一个 Rails 应用程序,它有一个名为 friendrequests
的表。它看起来像这样:
user1_id:integer user2_id:integer hasaccepted:boolean
我正在创建一个添加 friend 的选项,但好友请求只能发送一次。所以你不能在数据库的数据中有这样的东西:
user1_id | user2_id | hasaccepted
1 | 2 | false
1 | 2 | false
或
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)
。您可能还需要反过来。对于第二种情况,我将覆盖 FriendRequest
中的 #validate
并在那里进行检查(有关该方法应如何执行的详细信息,请参阅 API docs)。
关于ruby-on-rails - Rails 模型和独特的组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2291240/