我正试图在has_and_belongs_to_many
关系上实现一个唯一约束,如下所示:
class User
has_and_belongs_to_many :foos, uniq: true
end
因为我在呼叫foos
时只想要唯一的user.foos
,所以我添加了uniq
选项。自从升级到Rails 4后,我开始收到以下警告:
弃权警告:您的以下选项 User.has_and_belongs_to_many:foos声明已弃用:: uniq。 请改用示波器块。例如,以下内容:
has_many :spam_comments, conditions: { spam: true }, class_name: 'Comment'
应改写如下:
has_many :spam_comments, -> { where spam: true }, class_name: 'Comment'
我尝试了很多不同的组合,并通读了源代码,但无法弄清楚如何编写唯一约束来删除警告?