【发布时间】: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