2015-09-25 2 views
1

У меня есть полиморфный ресурс в моих рельсах приложении:Rails: Скрепка MissingRequiredValidatorError

class Media < ActiveRecord::Base 
    # some stuff 
    belongs_to :mediable, :polymorphic => true 
    # some stuff 

    class Media::TeaserCroppedImage < Media 
    has_attached_file :attachment, 
       :styles    => ..., 
       :processors   => ..., 
       :path     => "...", 
       :url     => "...", 
       # ... 

    validates_attachment :attachment, matches: { file_name: ["image/jpeg", "image/jpg"] } 

Как вы можете видеть, я пытался добавить скрепку валидатора. Но, по-видимому, это не работает, и я до сих пор получаю сообщение об ошибке MissingRequiredValidatorError.

Есть ли проблема с синтаксисом валидатора?

+0

Разве это не должно быть 'validates_attachment_content_type: attachment, content_type => ["image/jpg", "image/jpeg"] '? – Pavan

ответ

1

Вы должны должны включать в себя проверку content_type, что-то вроде этого:

validates_attachment_content_type :attachment, :content_type => ["image/jpg", "image/jpeg"] 

или вы можете заменить текущую проверку с этим:

validates_attachment_file_name :attachment, :matches => [/jpe?g\Z/] 
+0

Проблема в том, что когда я пытаюсь это сделать, у меня есть эта ошибка: 'undefined method 'attachment_content_type' для # '. В самом деле, у моего приложения нет content_type. Только полезная вещь кажется файловым именем. – Mat

+0

Как насчет этого? 'validates_attachment_file_name: attachment,: matches => [/ jpe? g \ Z /]'? –

+1

Действительно, ваш второй метод работает;) Спасибо! – Mat

Смежные вопросы