【发布时间】:2019-11-12 16:03:01
【问题描述】:
我想运行控制器查询并排除当前(自我)记录。我可以用这个:
Model.where.not(slug: params[:id])
在您设法传递记录 ID 之前,一切正常。
有没有更干净更直接的方法来做到这一点?
更新
我澄清了我的例子。我想搜索 id OR slug 列不等于 params [:id] 的位置。这也必须在任何正常范围或我运行查询的位置之后进行链接。
【问题讨论】:
我想运行控制器查询并排除当前(自我)记录。我可以用这个:
Model.where.not(slug: params[:id])
在您设法传递记录 ID 之前,一切正常。
有没有更干净更直接的方法来做到这一点?
更新
我澄清了我的例子。我想搜索 id OR slug 列不等于 params [:id] 的位置。这也必须在任何正常范围或我运行查询的位置之后进行链接。
【问题讨论】:
你可以写这个查询
Model.where('slug <> :param_id or id <> :param_id', {param_id: params[:id]})
【讨论】:
你可以使用or:
Model.where.not(slug: params[:id]).or(Model.where.not(id: params[:id]))
或者你可以重写你的查询:
Model.where('slug <> :param_id or id <> :param_id', {param_id: params[:id]})
【讨论】: