Avoid loading the association for the without_followers scope
As seen in https://stackoverflow.com/questions/5319400/want-to-find-records-with-no-associated-records-in-rails-3
This commit is contained in:
parent
0ca4d61803
commit
9ea396cc8b
2 changed files with 8 additions and 1 deletions
|
@ -60,7 +60,7 @@ class Dossier < ActiveRecord::Base
|
||||||
scope :termine, -> { not_archived.state_termine }
|
scope :termine, -> { not_archived.state_termine }
|
||||||
scope :downloadable, -> { state_not_brouillon.includes(:entreprise, :etablissement, :champs, :champs_private) }
|
scope :downloadable, -> { state_not_brouillon.includes(:entreprise, :etablissement, :champs, :champs_private) }
|
||||||
scope :en_cours, -> { not_archived.state_en_construction_ou_instruction }
|
scope :en_cours, -> { not_archived.state_en_construction_ou_instruction }
|
||||||
scope :without_followers, -> { includes(:follows).where(follows: { id: nil }) }
|
scope :without_followers, -> { left_outer_joins(:follows).where(follows: { id: nil }) }
|
||||||
scope :with_unread_notifications, -> { where(notifications: { already_read: false }) }
|
scope :with_unread_notifications, -> { where(notifications: { already_read: false }) }
|
||||||
|
|
||||||
accepts_nested_attributes_for :individual
|
accepts_nested_attributes_for :individual
|
||||||
|
|
|
@ -3,6 +3,13 @@ require 'spec_helper'
|
||||||
describe Dossier do
|
describe Dossier do
|
||||||
let(:user) { create(:user) }
|
let(:user) { create(:user) }
|
||||||
|
|
||||||
|
describe "without_followers scope" do
|
||||||
|
let!(:dossier) { create(:dossier, :followed, :with_entreprise, user: user) }
|
||||||
|
let!(:dossier2) { create(:dossier, :with_entreprise, user: user) }
|
||||||
|
|
||||||
|
it { expect(Dossier.without_followers.to_a).to eq([dossier2]) }
|
||||||
|
end
|
||||||
|
|
||||||
describe 'methods' do
|
describe 'methods' do
|
||||||
let(:dossier) { create(:dossier, :with_entreprise, user: user) }
|
let(:dossier) { create(:dossier, :with_entreprise, user: user) }
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue