# Handling nil.errors in error\_messages\_for

**URL:** <https://www.ruby-forum.com/t/handling-nil-errors-in-error-messages-for/151019>\
**Category:** Rails\
**Created:** [October 15, 2008, 11:59pm UTC](https://www.ruby-forum.com/t/handling-nil-errors-in-error-messages-for/151019 "2008-10-15T23:59:25Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![mroths](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/c89c15/32.png) [@mroths](https://www.ruby-forum.com/u/mroths)\
**Post date:** [October 15, 2008, 11:59pm UTC](https://www.ruby-forum.com/t/handling-nil-errors-in-error-messages-for/151019/1 "2008-10-15T23:59:25Z")

</div>

How do you deal with multiple objects in error\_messages\_for when one or  
more may be nil?

For example:

\<%= error\_messages\_for :object =\> [@account, @account.billing\_detail,  
@account.mailing\_address, @account.billing\_address] %\>

Here, @account.billing\_detail may be nil, and throw a NoMethodError.

Thanks,  
Mark

---

<div class="post-metadata">

**Author:** ![mroths](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/c89c15/32.png) [@mroths](https://www.ruby-forum.com/u/mroths)\
**Post date:** [October 16, 2008, 3:18am UTC](https://www.ruby-forum.com/t/handling-nil-errors-in-error-messages-for/151019/2 "2008-10-16T03:18:26Z")

</div>

Now, is @account a variable or a class? I could be way off in left  
field, but it looks like your calling objects that should be from a  
class. Variables should only be called by themselves typically.

On Oct 15, 3:59 pm, Mark R. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

---

<div class="post-metadata">

**Author:** ![mroths](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/c89c15/32.png) [@mroths](https://www.ruby-forum.com/u/mroths)\
**Post date:** [October 16, 2008, 4:36am UTC](https://www.ruby-forum.com/t/handling-nil-errors-in-error-messages-for/151019/3 "2008-10-16T04:36:42Z")

</div>

@account is an instance of class Account.

Account has\_one BillingDetail  
Account has\_one MailingAddress  
Account has\_one BillingAddress

My issue is how to deal with nil references on the has\_one associations.  
To my knowledge, the above syntax is the only way to deal with error  
messages in a multi-model form. I could have also done this:

\<%= error\_messages\_for :object =\> [@account, @billing\_detail,  
@mailing\_address, @billing\_address] %\>

having set these class variables in the controller, but that does not  
solve the nil issue.

Thanks,  
Mark

---

<div class="post-metadata">

**Author:** ![mroths](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/c89c15/32.png) [@mroths](https://www.ruby-forum.com/u/mroths)\
**Post date:** [October 16, 2008, 6:27am UTC](https://www.ruby-forum.com/t/handling-nil-errors-in-error-messages-for/151019/4 "2008-10-16T06:27:16Z")

</div>

Mark R. wrote:

> How do you deal with multiple objects in error\_messages\_for when one or  
> more may be nil?
> 
> For example:
> 
> \<%= error\_messages\_for :object =\> [@account, @account.billing\_detail,  
> @account.mailing\_address, @account.billing\_address] %\>
> 
> Here, @account.billing\_detail may be nil, and throw a NoMethodError.
> 
> Thanks,  
> Mark

i don’t know why you are trying in this way

anyway try this  
\<%= error\_messages\_for :object =\> [@account, @account.billing\_detail,  
@account.mailing\_address, @account.billing\_address].compact %\>

by  
mokkai

---

<div class="post-metadata">

**Author:** ![mroths](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/c89c15/32.png) [@mroths](https://www.ruby-forum.com/u/mroths)\
**Post date:** [October 16, 2008, 12:47pm UTC](https://www.ruby-forum.com/t/handling-nil-errors-in-error-messages-for/151019/5 "2008-10-16T12:47:16Z")

</div>

That worked! Thank you…had no idea you could do that…guess I should  
learn more Ruby 🙂

> anyway try this  
> \<%= error\_messages\_for :object =\> [@account, @account.billing\_detail,  
> @account.mailing\_address, @account.billing\_address].compact %\>
> 
> by  
> mokkai

---

<div class="post-metadata">

**Author:** ![mroths](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/c89c15/32.png) [@mroths](https://www.ruby-forum.com/u/mroths)\
**Post date:** [October 16, 2008, 1:06pm UTC](https://www.ruby-forum.com/t/handling-nil-errors-in-error-messages-for/151019/6 "2008-10-16T13:06:03Z")

</div>

Mark R. wrote:

> had no idea you could do that…  
> why ?

---

<div class="post-metadata">

**Author:** ![mroths](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/c89c15/32.png) [@mroths](https://www.ruby-forum.com/u/mroths)\
**Post date:** [October 16, 2008, 1:07pm UTC](https://www.ruby-forum.com/t/handling-nil-errors-in-error-messages-for/151019/7 "2008-10-16T13:07:42Z")

</div>

Sniper A. wrote:

> Mark R. wrote:
> 
> > had no idea you could do that…  
> > why ?

Why did I have no idea??
