Add validations to these models such that...
-
All authors have a name class Author validates :name, presence: true
-
No two authors have the same name validates :name, uniqueness: true
-
Author phone numbers are exactly ten digits validates phone, length: {is: 10}
-
All posts have a title validates :title, presence: true
-
Post content is at least 250 characters long validates :content, length: {minimum: 250 }
-
Post summary is a maximum of 250 characters validates :summary, length: { maximum: 250}
-
Post category is either
Fiction
orNon-Fiction
This step requires aninclusion
validator, which was not outlined in the README lesson. You'll need to refer to the [Rails guide][ar_validations] to look up how to use it. [ar_validations]: http://guides.rubyonrails.org/active_record_validations.html
validates :category, inclusion: {in: %w(Fiction Non-Fiction)}
Finally, add a custom validator to Post
that ensures the title is sufficiently
clickbait-y. If the title does not contain "Won't Believe", "Secret", "Top
[number]", or "Guess", the validator should return false.
class ClickbaitValidator < ActiveModel::EachValidator def validate(record, attribute, value) unless value == "Won't Believe" false end
end
class Post < ApplicationRecord validates :title, clickbait: true end
For future projects, it's a good idea to skim the list of available validation options. It will give you a sense of what's available and help with creating validations for your own model objects.
View ActiveRecord Validations Lab on Learn.co and start learning to code for free.