排除使用friendly_id吗?

时间:2019-07-02 04:00:02

标签: ruby-on-rails friendly-id

我想运行控制器查询并排除当前(自)记录。我可以使用:

Model.where.not(slug: params[:id])

在您成功传递记录ID之前,效果很好。

是否有更清洁的直接方法?

更新

我澄清了我的例子。我想搜索id或slug列不等于params [:id]的地方。在任何正常范围或我运行的查询之后,这也必须链接。

2 个答案:

答案 0 :(得分:0)

您可以编写此查询

Model.where('slug <> :param_id or id <> :param_id', {param_id: params[:id]})

答案 1 :(得分:0)

您可以使用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]})