Ich habe folgende ModelleSchienen 3 ActiveRecord # enthält Fehler?
class Account < ActiveRecord::Base
belongs_to :user
end
class User < ActiveRecord::Base
attr_accessible :email
has_many :accounts
end
Soweit ich weiß, um alle Konten auszuwählen, die für alle Benutzer mit E-Mail mit einem Muster übereinstimmen, wir kommen
Account.joins(:user).where("users.email ILIKE ?", '%pattern%') -> work
Und hier tun müssen die Magie kommt, umfasst das ersetzen mit beitritt, arbeitet immer noch wie ein Zauber
Account.includes(:user).where("users.email ILIKE ?", '%pattern%') -> work
Aber
Account.includes(:user).where("users.email ILIKE ?", '%pattern%').count -> error
Eine Erklärung? ist nur für Eager Loading nur nicht enthalten?
können Sie den Fehler schreiben Sie bekommen ? – jithya
versuchen ,. "Account.includes (: user) .where (" users.email ILIKE? ","% Pattern% '). Length " – Sravan
Includes führt tatsächlich einen linken äußeren Join aus, wenn Sie die Tabelle in where-Bedingung verwenden, weshalb Sie erhalten Ergebnis –