【问题标题】:Ruby on Rails where_values methodRuby on Rails where_values 方法
【发布时间】:2018-08-28 07:56:52
【问题描述】:

在 Ruby on Rails 4 中有 where_values 方法:

User.with_all_credentials(creds).where_values
[
    [0] "lower(email) = 'test'"
]

在 Ruby on Rails 5 中,当我尝试做同样的事情时,它返回我这个方法不存在。如何在 Ruby on Rails 5 中获得相同的结果?

【问题讨论】:

  • this 是你要找的吗?
  • 我认为 where_values 从来都不是公共 api,只有 where_values_hash 过去和现在。但是 where_values_hash 的实现发生了变化:github.com/rails/rails/blob/… - 不知道为什么在你的情况下 where_values_hash 是空的。
  • Active Record 中的公共方法和所谓的私有方法(实际上是公共的)之间没有明确的界限。它完全令人困惑。
  • @apneadiving 边界是文档:如果它是 :nodoc:,那么它是内部的。如果 Ruby 有更坚定的方式来执行该规则,那就太好了,但不幸的是它没有。

标签: ruby-on-rails ruby ruby-on-rails-5


【解决方案1】:

正如在 Rails 代码中很容易看到的那样,它现在是 where_clause。

(因为where 现在住在CLAUSE_METHODS。)

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-04
  • 2011-07-11
  • 2013-05-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多