mirror of
https://github.com/we-promise/sure.git
synced 2026-04-19 03:54:08 +00:00
Fix NoMethodError on nil entryable in account activity feed (#1316)
* Fix NoMethodError when entry has nil entryable Guard against orphaned entries where the entryable record has been deleted but the entry still exists, preventing a crash on the account show page. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * Add dependent: :destroy to Entryable has_one :entry The polymorphic has_one :entry association lacked a dependent option, meaning if a Transaction/Trade/Valuation was ever deleted directly (bypassing the Entry), the Entry would be left orphaned with a nil entryable — causing NoMethodError in the activity feed. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * Add nil entryable guard to _split_group.html.erb Same defensive check as _entry.html.erb for consistency. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -10,7 +10,7 @@ module Entryable
|
|||||||
included do
|
included do
|
||||||
include Enrichable
|
include Enrichable
|
||||||
|
|
||||||
has_one :entry, as: :entryable, touch: true
|
has_one :entry, as: :entryable, touch: true, dependent: :destroy
|
||||||
|
|
||||||
scope :with_entry, -> { joins(:entry) }
|
scope :with_entry, -> { joins(:entry) }
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,6 @@
|
|||||||
<%# locals: (entry:, balance_trend: nil, view_ctx: "global") %>
|
<%# locals: (entry:, balance_trend: nil, view_ctx: "global") %>
|
||||||
|
|
||||||
<%= render partial: entry.entryable.to_partial_path,
|
<% if entry.entryable.present? %>
|
||||||
locals: { entry: entry, balance_trend: balance_trend, view_ctx: view_ctx } %>
|
<%= render partial: entry.entryable.to_partial_path,
|
||||||
|
locals: { entry: entry, balance_trend: balance_trend, view_ctx: view_ctx } %>
|
||||||
|
<% end %>
|
||||||
|
|||||||
@@ -2,7 +2,9 @@
|
|||||||
<div class="split-group">
|
<div class="split-group">
|
||||||
<%= render "transactions/split_parent_row", entry: split_group.parent %>
|
<%= render "transactions/split_parent_row", entry: split_group.parent %>
|
||||||
<% split_group.children.each do |child_entry| %>
|
<% split_group.children.each do |child_entry| %>
|
||||||
<%= render partial: child_entry.entryable.to_partial_path,
|
<% if child_entry.entryable.present? %>
|
||||||
locals: { entry: child_entry, in_split_group: true } %>
|
<%= render partial: child_entry.entryable.to_partial_path,
|
||||||
|
locals: { entry: child_entry, in_split_group: true } %>
|
||||||
|
<% end %>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user