0

我在我的 Rails 应用程序中犯了一个错误,我没有强制登录的唯一性。现在我想通过在我的代码中(手动)查找和删除重复项来清理这个烂摊子。

我可以在 Rails 控制台中输入一个很好的命令来让我找到那些重复项吗?例如。找到两个具有相同登录名的用户,也许制作一个重复数组?

4

1 回答 1

0

假设您的模型是User并且您正在寻找重复属性login,您应该能够执行以下操作:

User.find_by_sql("SELECT u1.id, u1.login FROM users u1 LEFT JOIN users u2 WHERE u1.login=u2.login AND u1.id!=u2.id ORDER BY u1.login, u1.id")

当然,您可以更改选择以包含您需要的任何属性,以便决定如何处理重复项。

编辑Mongoid,看看这个链接

于 2015-06-19T12:26:28.210 回答