Fix transactions page crash when no accounts exist (#1453)

Skip the accessible_account_ids filter when the array is empty, preventing
Rails from creating a "none" relation that causes .take to return nil.
An empty [] is truthy in Ruby, so `if accessible_account_ids` was applying
a WHERE account_id IN () clause that matched nothing.

Fixes #1452

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Alex Kreidler
2026-04-13 04:31:00 -07:00
committed by GitHub
parent e40811b1ee
commit 0761e8c237

View File

@@ -30,7 +30,7 @@ class Transaction::Search
query = family.transactions.merge(Entry.excluding_split_parents)
# Scope to accessible accounts when provided
query = query.where(entries: { account_id: accessible_account_ids }) if accessible_account_ids
query = query.where(entries: { account_id: accessible_account_ids }) if accessible_account_ids&.any?
query = apply_active_accounts_filter(query, active_accounts_only)
query = apply_category_filter(query, categories)