is it possible to run ActiveRecord validates on given controller and action.
For example I have user_controller
and signup_controller
I need to run password required validation only on signup_controller#create action
You can run validations using an if
conditional:
validates :email, presence: true, if: :validate_email?
Now you need to define this instance method (in your model):
def validate_email?
validate_email == 'true' || validate_email == true
end
This validate_email
attribute could be a virtual attribute in your model:
attr_accessor :validate_email
And now, you can perform email validation depending on that virtual attribute. For example, in signup_controller#create
you can do something like:
def create
...
@user.validate_email = true
@user.save
...
end
use validates :password, :if => :password_changed?
in user.rb
if form in users_controller does not submit password
field then you should be ok.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With