2

我正在使用squeel并且我ActiveRecord::QueryMethods::WhereChain从查询而不是ActiveRecord::AssociationRelation.

询问:

game.golfers.where{competitors.swing_golfer IS DISTINCT FROM TRUE}

返回的查询AssociationRelation

game.golfers.where{"competitors.swing_golfer IS DISTINCT FROM TRUE"}

注意引号改变了返回类型。

楷模

class Game < ActiveRecord::Base
  has_many :competitors
  has_many :golfers, through: :competitors
end

class Golfer < ActiveRecord::Base
  has_many :competitors
  has_many :games, through: :competitors
end

知道这ActiveRecord::QueryMethods::WhereChain是什么以及如何使用或避免它吗?

  • 红宝石 2.0.0
  • 轨道 4.0
  • squeel 1.1.1
4

1 回答 1

0

看看这篇文章:

http://erniemiller.org/2013/10/07/activerecord-where-not-sane-true/

Ernie 说:“它的唯一目的是为了暴露一个 not 方法而存在,..”

基本上,它的设计目的是让您可以通过调用 .not(...) 来修改原始条件,而无需复制它。

于 2014-02-18T00:56:38.823 回答