SORU
20 ŞUBAT 2014, PERŞEMBE


::Ataç Hataları::Raylar ile 4 MissingRequiredValidatorError

Benim raylar app blog ile ataç kullanarak yüklemeye çalışırken bu hatayı alıyorum. Emin bir ifade ne "MissingRequiredValidatorError"diyor zaman Post_params güncelleme ve :görüntü vererek hem post_params yarat kullanmak iyi olur diye düşündüm

Paperclip::Errors::MissingRequiredValidatorError in PostsController#create
Paperclip::Errors::MissingRequiredValidatorError

Extracted source (around line #30):

def create
  @post = Post.new(post_params)

Bu benim posts_controller.rb

def update
  @post = Post.find(params[:id])

  if @post.update(post_params)
    redirect_to action: :show, id: @post.id
  else
    render 'edit'
  end
end

def new
  @post = Post.new
end

def create
  @post = Post.new(post_params)

  if @post.save
    redirect_to action: :show, id: @post.id
  else
    render 'new'
  end
end
#...

private

def post_params
  params.require(:post).permit(:title, :text, :image)
end    

ve bu benim mesaj yardımcı olur

module PostsHelper
  def post_params
    params.require(:post).permit(:title, :body, :tag_list, :image)
  end
end

Bana ekstra maddi yardım etmeme yardım takviyesi olursa haber ver lütfen.

CEVAP
20 ŞUBAT 2014, PERŞEMBE


Paperclip version 4.0 ile başlayan tüm ekleri dahil etmek gereklidircontent_type doğrulama,file_name bir doğrulamaya da içinaçıkçaya zorundalar.

Ataç, eğer böyle bir şey yaparsanız değil Paperclip::Errors::MissingRequiredValidatorError hata yükseltir.

Senin durumunda, ** 12 model, aşağıdaki satırı herhangi ekleyebilirsinizsonrahas_attached_file :image belirtme

Seçenek 1: Doğrulamak içerik yazın

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

-YA da - başka bir yolu

validates_attachment :image, content_type: { content_type: ["image/jpg", "image/jpeg", "image/png", "image/gif"] }

-YA da - başka bir yolu

kullanmaknormal ifadedoğrulama içerik türü için.

Örneğin: tüm resim biçimlerini doğrulamak İçin, düzenli ifade gösterildiği gibi belirtilebilir

@LucasCaton's answer

Seçenek 2: Doğrulamak dosya adı

validates_attachment_file_name :image, :matches => [/png\Z/, /jpe?g\Z/, /gif\Z/]

Seçenek 3: doğrulamaz

Bazı eğerdeli(olabilir . nedeni ^em>geçerliama ben yapamam sanırım biri şu an), yok olmak için tıklayın...] herhangi content_type doğrulama ve izin insanlar için parodi İçerik Türleri ve al veri değildin bekliyor üzerine sunucunuz sonra aşağıdakileri ekleyin:

do_not_validate_attachment_file_type :image

Not:

20* content_type/ *yukarıdaki seçenekler içinde sizin şartının olarak MIME türlerini belirtin.Sadece görüntü MIME birkaç tür ile başlamak için verdim.

Referans:

BakınPaperclip: Security ValidationsEğer hala doğrulamak gerekir. :)

Ayrıca sızdırma doğrulama burada açıkladı http://stackoverflow.com/a/23846121 ile uğraşmak zorunda kalabilirsiniz

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Bennythecoder

    Bennythecode

    25 Mart 2008
  • DragsterMC Gaming

    DragsterMC G

    30 HAZİRAN 2013
  • SuicideSheeep

    SuicideSheee

    8 Ocak 2012