Salil Gaikwad
2009-Jul-03 14:15 UTC
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 Gaikwad
--
Posted via http://www.ruby-forum.com/.
Gavin
2009-Jul-03 14:27 UTC
Re: Error Messages while entering data in 2 tables with 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)
Hope that helps
Gavin
http://handyrailstips.com
On Jul 3, 3:15 pm, Salil Gaikwad
<rails-mailing-l...-ARtvInVfO7ksV2N9l4h3zg@public.gmane.org>
wrote:> 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 Gaikwad
> --
> Posted viahttp://www.ruby-forum.com/.
Salil Gaikwad
2009-Jul-03 15:00 UTC
Re: Error Messages while entering data in 2 tables with one form
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 Gaikwad -- Posted via http://www.ruby-forum.com/.
Gavin
2009-Jul-04 09:43 UTC
Re: Error Messages while entering data in 2 tables with one form
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 http://handyrailstips.com On Jul 3, 4:00 pm, Salil Gaikwad <rails-mailing-l...-ARtvInVfO7ksV2N9l4h3zg@public.gmane.org> wrote:> 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 Gaikwad > -- > Posted viahttp://www.ruby-forum.com/.
Gavin
2009-Jul-04 09:55 UTC
Re: Error Messages while entering data in 2 tables with one form
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 http://handyrailstips.com On Jul 3, 4:00 pm, Salil Gaikwad <rails-mailing-l...-ARtvInVfO7ksV2N9l4h3zg@public.gmane.org> wrote:> 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 Gaikwad > -- > Posted viahttp://www.ruby-forum.com/.