diff --git a/CHANGELOG.md b/CHANGELOG.md index 20786ad..d6fc4be 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] -Nothing yet +### Fixed +- Fix `object_errors` when `object` is `false` (#173) ## [0.2.8] - 2024-08-20 ### Added diff --git a/app/components/view_component/form/base_component.rb b/app/components/view_component/form/base_component.rb index e2ad296..9679cc2 100644 --- a/app/components/view_component/form/base_component.rb +++ b/app/components/view_component/form/base_component.rb @@ -12,7 +12,6 @@ class << self attr_reader :form, :object_name, :options delegate :object, to: :form, allow_nil: true - delegate :errors, to: :object, prefix: true, allow_nil: true def initialize(form, object_name, options = {}) @form = form @@ -30,6 +29,12 @@ def object_errors? object.errors.any? end + def object_errors + return nil unless object + + object.errors + end + def html_class nil end diff --git a/spec/view_component/form/field_component_spec.rb b/spec/view_component/form/field_component_spec.rb index fcab732..9f6cdfe 100644 --- a/spec/view_component/form/field_component_spec.rb +++ b/spec/view_component/form/field_component_spec.rb @@ -87,6 +87,12 @@ def name it { expect(component.method_errors?).to be(false) } end + + context "with false" do + let(:object) { false } + + it { expect(component.method_errors?).to be(false) } + end end describe "#value" do