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.
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)
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?