# Error Messages while entering data in 2 tables with one form

**URL:** <https://www.ruby-forum.com/t/error-messages-while-entering-data-in-2-tables-with-one-form/171500>\
**Category:** Rails\
**Created:** [July 3, 2009, 4:15pm UTC](https://www.ruby-forum.com/t/error-messages-while-entering-data-in-2-tables-with-one-form/171500 "2009-07-03T16:15:42Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![salil](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/c89c15/32.png) [@salil](https://www.ruby-forum.com/u/salil)\
**Post date:** [July 3, 2009, 4:15pm UTC](https://www.ruby-forum.com/t/error-messages-while-entering-data-in-2-tables-with-one-form/171500/1 "2009-07-03T16:15:42Z")

</div>

Hi All,

I want to enter parameters in 2 tables which are submitted using one  
form.  
Following is the relation of models.  
In UserInfo.rb  
has\_one :user  
validates\_associated :user  
validates\_presence\_of :city

In User.rb  
belongs\_to :user\_info  
validates\_presence\_of :first\_name

I write following code in my UserInfosController  
@user\_info = UserInfo.new(params[:user\_info])  
@user\_info.build\_user(:first\_name=\>’’) # which i’ll modify later  
@user\_info.save

now if i click the submit button w/o entering any values i.e.  
params[:userinfo][:city]=""

it gives me two error  
\* City can’t be blank  
\* User is invalid

but i want second error should be as follows  
\*first name can’t be blank

I would like to know how to do it or is there any other way in rails to  
enter data into two tables using one form.

Regards,

Salil G.

---

<div class="post-metadata">

**Author:** ![salil](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/c89c15/32.png) [@salil](https://www.ruby-forum.com/u/salil)\
**Post date:** [July 3, 2009, 4:39pm UTC](https://www.ruby-forum.com/t/error-messages-while-entering-data-in-2-tables-with-one-form/171500/2 "2009-07-03T16:39:22Z")

</div>

validates\_associated checks if the associated object (in this case  
User) is a valid record.  
If not, it adds an error to the UserInfo object’s user method. (“User  
is invalid”)

“first name can’t be blank” is an error on the User object’s  
first\_name method.

If you want to display the “first name can’t be blank” you’ll need to  
access it either through \<%= error\_messages\_for :user %\> or  
@user.errors.on(:first\_name)

Hope that helps

Gavin

> **[Ruby on Rails tips & Tutorials](https://handyrailstips.com/)**
>
> Ruby on Rails tips and tutorials

On Jul 3, 3:15 pm, Salil G. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

---

<div class="post-metadata">

**Author:** ![salil](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/c89c15/32.png) [@salil](https://www.ruby-forum.com/u/salil)\
**Post date:** [July 3, 2009, 5:00pm UTC](https://www.ruby-forum.com/t/error-messages-while-entering-data-in-2-tables-with-one-form/171500/3 "2009-07-03T17:00:31Z")

</div>

Hi Gavin,

I try following as u say  
\<%= error\_messages\_for :user %\>  
but it gives me same error messages.  
i don’t know how to use @user.errors.on(:first\_name)  
and where to use?

Regards,

Salil G.

---

<div class="post-metadata">

**Author:** ![salil](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/c89c15/32.png) [@salil](https://www.ruby-forum.com/u/salil)\
**Post date:** [July 4, 2009, 11:55am UTC](https://www.ruby-forum.com/t/error-messages-while-entering-data-in-2-tables-with-one-form/171500/4 "2009-07-04T11:55:54Z")

</div>

To get rid of the “user is invalid”, remove  
validates\_associated :user from the UserInfo model

Meanwhile, read up on validates\_associated:  
[http://api.rubyonrails.org/classes/ActiveRecord/Validations/ClassMethods.html#M002461](http://api.rubyonrails.org/classes/ActiveRecord/Validations/ClassMethods.html#M002461)  
and make sure you want ot use it here.

Gavin

> **[Ruby on Rails tips & Tutorials](https://handyrailstips.com/)**
>
> Ruby on Rails tips and tutorials

On Jul 3, 4:00 pm, Salil G. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

---

<div class="post-metadata">

**Author:** ![salil](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/c89c15/32.png) [@salil](https://www.ruby-forum.com/u/salil)\
**Post date:** [July 4, 2009, 11:43am UTC](https://www.ruby-forum.com/t/error-messages-while-entering-data-in-2-tables-with-one-form/171500/5 "2009-07-04T11:43:38Z")

</div>

To get rid of the “user is invalid”, remove  
validates\_associated :user from the UserInfo model

Meanwhile, read up on validates\_associated:  
[http://api.rubyonrails.org/classes/ActiveRecord/Validations/ClassMethods.html#M002461](http://api.rubyonrails.org/classes/ActiveRecord/Validations/ClassMethods.html#M002461)  
and make sure you want ot use it here.

Gavin

> **[Ruby on Rails tips & Tutorials](https://handyrailstips.com/)**
>
> Ruby on Rails tips and tutorials

On Jul 3, 4:00 pm, Salil G. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)
