Error Messages while entering data in 2 tables with one form

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.

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

On Jul 3, 3:15 pm, Salil G. [email protected]

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.

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
and make sure you want ot use it here.

Gavin

On Jul 3, 4:00 pm, Salil G. [email protected]

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
and make sure you want ot use it here.

Gavin

On Jul 3, 4:00 pm, Salil G. [email protected]