In this case, csv_validator expects :my_csv_file to be an instance of ActionDispatch::Http::UploadedFile, which is created by default for Rails uploads.

Other validation options

There are a handful of other options for more specific validation too. A complete list is below... note that you wouldn't use all simultaneously.

validates :my_csv_file, :csv => {
:columns => 3, # an exact number of columns:max_columns => 10, # a maximum number of columns:min_columns => 1, # a minimum number of columns:rows => 20, # an exact number of rows:max_rows => 30, # a maximum number of rows:min_rows => 2, # a minimum number of rows:email => 0, # will check to make sure all emails in specified column are valid email addresses:numericality => 0, # will check to make sure all values in specified column are numerical
}