Forum: Ruby on Rails ActiveRecord Validations Not Working

Posted by honey jadala (honeyruby)
on 2012-09-12 13:45
(Received via mailing list)
Hi all i am learning Rails3.2.7 but by ActiveRecords Validations are not
working.

These are my User.rb

 class User < ActiveRecord::Base
     attr_accessible :password, :fullname,:user_name
,:email,:company_name#,:terms_of_service,:password_confirmation

    validates :terms_of_service, :acceptance => { :accept => 'yes' }
      validates :password ,:confirmation => true
      validates :password_confirmation, :presence => true
      validates :fullname ,:presence => true
      validates :user_name ,:presence => true
      validates :email ,:presence => true
      validates :company_name ,:presence => true



end

but when i click Submit button with out entering the data my validations
are not working i'm not getting errors messages which is default in
rails.Can any one tell where did i go wrong


Thanks in advance
Posted by Gintautas S. (gintautas_s)
on 2012-09-12 13:49
(Received via mailing list)
Is the record being saved? If not, then most likely you just do not have
infrastructure in place to display the errors.

2012/9/12 honey ruby <emailtohoneyruby@gmail.com>
Posted by honey jadala (honeyruby)
on 2012-09-12 13:52
(Received via mailing list)
@Gintautas Å imkus when i enter data my data is saving. What do u mean by
infrastructure in place to display the errors.
Posted by Gintautas S. (gintautas_s)
on 2012-09-12 13:58
(Received via mailing list)
OK, what I meant is that maybe you were expecting error to get displayed
without actually putting the code (most likely in a layout template), 
i.e.
(the example is in HAML)

= render partial 'layouts/errors'

and layouts/_errors could look something like

%div#errors= flash[:error]

But if it is (incorrectly) saving, then the above is not the case.

2012/9/12 hanish jadala <emailtohoneyruby@gmail.com>
Posted by Colin Law (Guest)
on 2012-09-12 14:32
(Received via mailing list)
On 12 September 2012 12:44, honey ruby <emailtohoneyruby@gmail.com> 
wrote:
> Hi all i am learning Rails3.2.7 but by ActiveRecords Validations are not
> working.
>
> These are my User.rb
>
>  class User < ActiveRecord::Base
>      attr_accessible :password, :fullname,:user_name
> ,:email,:company_name#,:terms_of_service,:password_confirmation

That # in the middle looks a bit odd.  Did you mean it to be there?

>
> end
>
> but when i click Submit button with out entering the data my validations are
> not working i'm not getting errors messages which is default in rails.Can
> any one tell where did i go wrong

If the code you have posted for the model is not copied/pasted then
please do that (so we can check for typos), also post the code for the
controller action run when you click submit (just that action will
do), and also post the section of development.log for when you clck
submit (look at the log before you click submit to see where to start
the copy/paste from).

Maybe better to have a look at the Rails Guide on debugging first
though to find out how to debug the code, then see if you can work it
out for yourself.

Colin
Posted by Avi (Guest)
on 2012-09-13 07:32
(Received via mailing list)
Hello,

On Wednesday, September 12, 2012 5:14:07 PM UTC+5:30, honey ruby wrote:
>
> Hi all i am learning Rails3.2.7 but by ActiveRecords Validations are not
> working.
>
> These are my User.rb
>
>  class User < ActiveRecord::Base
>      attr_accessible :password, :fullname,:user_name
> ,:email,:company_name#,:terms_of_service,:password_confirmation
>

For this : - First remove the # after  :company_name.
For :password_confirmation, you should also add :-
        attr_accessor  :password_confirmation. (because it is not going 
to
be saved in db.)

Hope this helps.
Posted by Avi (Guest)
on 2012-09-13 07:34
(Received via mailing list)
On Wednesday, September 12, 2012 5:14:07 PM UTC+5:30, honey ruby wrote:
>
> Hi all i am learning Rails3.2.7 but by ActiveRecords Validations are not
> working.
>
> These are my User.rb
>
>  class User < ActiveRecord::Base
>      attr_accessible :password, :fullname,:user_name
> ,:email,:company_name#,:terms_of_service,:password_confirmation
>


*For this : - First remove the # after  :company_name.
For :password_confirmation, you should also add :-
        attr_accessor  :password_confirmation. (because it is not going 
to
be saved in db.)

Hope this helps *.
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.