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/.