【问题标题】:Find records whose attributes after some change is equal to something查找某些更改后的属性等于某值的记录
【发布时间】:2016-07-27 02:08:21
【问题描述】:

我会在 MySQL 中执行以下操作:

SELECT * FROM table t WHERE REPLACE(t.field,"find_this","replace_with_this") = 'Something'

你知道我怎样才能在 Rails 中得到这样的东西吗?

例如,这是行不通的:

Site.where('name = ?',slugify(something))

因为我将保存在数据库中的名称与变量 something 的 slugified 形式进行比较。

我想对 Site 的属性“名称”进行 slugify,然后进行比较。

这可能吗?

【问题讨论】:

    标签: ruby-on-rails activerecord rails-activerecord slug


    【解决方案1】:

    您可以在 where 子句中执行原始 SQL:

    Site.where("REPLACE(t.field,'find_this','replace_with_this') = ?", value_to_find)
    

    【讨论】:

      【解决方案2】:

      怎么样:

      slugified_names = Site.where(field: 'find_this').map(&:slugify)
      Site.where(field: slugified_names)
      

      【讨论】:

        猜你喜欢
        • 2014-08-16
        • 2019-02-16
        • 1970-01-01
        • 2013-04-20
        • 1970-01-01
        • 2017-10-08
        • 2016-05-01
        • 1970-01-01
        • 2012-05-07
        相关资源
        最近更新 更多