Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Input validations on fields in ActiveAdmin

When I create a new form in ActiveAdmin, I want validations on my form input fields. But I can't find a related tutorial. I want some fields to accept only alphabets, some only digits , and some should be of specific length.

f.input :name, :label => "Title", input_html: { autofocus: true }

f.input :description

f.input :email

f.input :contact_number

f.input :contact_person

1 Answers

[Answer not only for ActiveAdmin, but for RoR in general]

You should do it in model.

• For digits only:

You want your :contact_number to be a digit, so your model (e.g. User) should look like this:

class User < ActiveRecord::Base

   validates :contact_number, numericality: {only_integer: true}

end

• For min. 5 characters:

If description for example must be at least 5 characters it will be:

validates_length_of :description, minimum: 5

• For letters only:

validates_format_of :name, with: /^[-a-z]+$/

(details about reg. expressions --> Validate: Only letters, numbers and - )

Additional info:

If your form don't pass model validation it will return alert about wrong argument (which is accessible in flash[:alert] array).

More about it in:

http://guides.rubyonrails.org/active_record_basics.html#validations

like image 175
Outside_Box Avatar answered Mar 26 '26 21:03

Outside_Box



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!