I have a 'validate_on_create' statement in one of my controllers that I would like all of my seed data to skip. What are some solutions so that the create statement in my seeds file skips this validation. My current solution is commenting out the validation each time I run rake db:seed. Anything a little more clever?
Have you considered adding an attribute in the model which is checked in the validate_on_create method?
Example:
class MyModel < ActiveRecord::Base
attr_accessor :skip_on_create_validation
def validate_on_create
unless skip_on_create_validation
# do validation
end
end
end
# In db/seeds.rb
MyModel.create(:skip_on_create_validation => true, ......)
You can skip validations by calling model.save(false)
on your seeds, assuming you are not loading them via fixtures.
You can explicitly skip all validations when you save an object by calling object.save(false)
.
For example:
# In your model
def validate_on_create
# An example validation - replace with whatever you like
return true unless name.blank?
end
# In db/seeds.rb
# Create a new person
p = Person.new(:name => 'Bob')
# Save the record to the database, and *skip validation*
p.save(false)
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