【问题标题】:Exclude using friendly_id?排除使用friendly_id?
【发布时间】:2019-11-12 16:03:01
【问题描述】:

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

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

在您设法传递记录 ID 之前,一切正常。

有没有更干净更直接的方法来做到这一点?

更新

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

【问题讨论】:

    标签: ruby-on-rails friendly-id


    【解决方案1】:

    你可以写这个查询

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

    【讨论】:

    • 我更新了我的问题以澄清 - 我不清楚。
    • @DanTappin 更新了我的答案,请检查
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-10
      • 1970-01-01
      • 2012-07-06
      • 1970-01-01
      • 1970-01-01
      • 2017-12-16
      • 2011-12-02
      • 1970-01-01
      相关资源
      最近更新 更多