我们如何更换?来自rails-sql查询


scope :accessible_by, -> (current_user) { where("loc_primary_email= ? OR loc_backup_email= ? ",current_user.email, current_user.email) }

我该如何更换?with:email,这样我就不需要在查询中两次传递current_user.email

对于"quot;:

scope :accessible_by, -> (current_user) { where("loc_primary_email = :email OR loc_backup_email = :email ", email: current_user.email) }

但是where的参数必须包含一个散列,其中必须存在电子邮件密钥。

您可以使用的数组作为参数来检查文档中的这一点(当然,您可以省略括号(;

或者,您可以在模板中使用命名占位符,并且传递散列作为数组的第二个元素。中的名称模板将替换为哈希中的相应值。

User.where(["name = :name and email = :email", { name: "Joe", email: "joe@example.com" }])
# SELECT * FROM users WHERE name = 'Joe' AND email = 'joe@example.com';

最新更新