【发布时间】:2015-06-11 12:30:38
【问题描述】:
尝试取消连接范围。
例子:
class MyModel < ActiveRecord::Base
default_scope -> { joins("JOIN other_table ON other_table.this_table_id = this_table.id") }
scope :without_relation -> { unscope(:joins) }
end
问题在于它取消了所有连接的范围,即使是那些由 AR 关系自动构建的连接。
【问题讨论】:
-
您是否尝试将名称更改为
joins以外的其他名称?我猜这可能是原因。 -
嗯?
:joins是uncope的定义值:github.com/rails/rails/blob/… -
哇。难道你不能只定义一个具有相对较短标识符的命名范围而不需要它时不使用它吗?嗯,这不是一个真正的问题,更像是供考虑的信息。
-
@D-side 事情是我在少数情况下不需要它。而且代码库已经太大了。
标签: ruby-on-rails rails-activerecord default-scope active-record-query