Oops, include default-list hangers in the trade lists
Without the `left_outer_joins`, this query only returns hangers that have a matching list, which defeats the purpose of two of the three clauses! lol
This commit is contained in:
parent
ebb1be88a1
commit
05c8e7f618
1 changed files with 17 additions and 19 deletions
|
@ -19,29 +19,27 @@ class ClosetHanger < ApplicationRecord
|
||||||
}
|
}
|
||||||
scope :trading, -> {
|
scope :trading, -> {
|
||||||
ch = arel_table
|
ch = arel_table
|
||||||
|
# sigh… our default-lists continue to be a pain
|
||||||
cl = ClosetList.arel_table
|
cl = ClosetList.arel_table
|
||||||
u = User.arel_table
|
u = User.arel_table
|
||||||
joins(:user, :list).where(
|
joins(:user).left_outer_joins(:list).where(
|
||||||
# sigh… our default-lists continue to be a pain
|
|
||||||
(
|
|
||||||
ch[:list_id].not_eq(nil).and(cl[:visibility].gteq(
|
ch[:list_id].not_eq(nil).and(cl[:visibility].gteq(
|
||||||
ClosetVisibility[:trading].id))
|
ClosetVisibility[:trading].id))
|
||||||
).or(
|
).or(where(
|
||||||
(
|
(
|
||||||
ch[:list_id].eq(nil).and(ch[:owned].eq(true))
|
ch[:list_id].eq(nil).and(ch[:owned].eq(true))
|
||||||
).and(
|
).and(
|
||||||
u[:owned_closet_hangers_visibility].gteq(
|
u[:owned_closet_hangers_visibility].gteq(
|
||||||
ClosetVisibility[:trading].id)
|
ClosetVisibility[:trading].id)
|
||||||
)
|
)
|
||||||
).or(
|
)).or(where(
|
||||||
(
|
(
|
||||||
ch[:list_id].eq(nil).and(ch[:owned].eq(false))
|
ch[:list_id].eq(nil).and(ch[:owned].eq(false))
|
||||||
).and(
|
).and(
|
||||||
u[:wanted_closet_hangers_visibility].gteq(
|
u[:wanted_closet_hangers_visibility].gteq(
|
||||||
ClosetVisibility[:trading].id)
|
ClosetVisibility[:trading].id)
|
||||||
)
|
)
|
||||||
)
|
))
|
||||||
)
|
|
||||||
}
|
}
|
||||||
scope :newest, -> { order(arel_table[:created_at].desc) }
|
scope :newest, -> { order(arel_table[:created_at].desc) }
|
||||||
scope :owned_before_wanted, -> { order(arel_table[:owned].desc) }
|
scope :owned_before_wanted, -> { order(arel_table[:owned].desc) }
|
||||||
|
|
Loading…
Reference in a new issue