Estou recebendo esse erro ao tentar fazer upload usando um clipe de papel com meu aplicativo de blog do Rails. Não tenho certeza do que está se referindo quando diz "MissingRequiredValidatorError" Eu pensei que, atualizando post_params e fornecendo: image, seria bom, pois tanto a criação quanto a atualização usam post_params
Paperclip::Errors::MissingRequiredValidatorError in PostsController#create
Paperclip::Errors::MissingRequiredValidatorError
Extracted source (around line #30):
def create
@post = Post.new(post_params)
Este é o meu 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
e este é meu ajudante de posts
module PostsHelper
def post_params
params.require(:post).permit(:title, :body, :tag_list, :image)
end
end
Informe-me se posso suplementar material extra para ajudá-lo.
validates_attachment :image, presence: true, content_type: { content_type: ["image/jpg", "image/jpeg", "image/png"] }
presence: true
validação não é obrigatória, por isso excluí essa parte.do_not_validate_attachment_file_type
. Como Rdocs coloca: Graças a um relatório de Egor Homakov, tomamos medidas para impedir que as pessoas falsifiquem tipos de conteúdo e obtenham dados que você não esperava no servidor.Basta colocar no seu modelo:
https://github.com/thoughtbot/paperclip
fonte
É necessário adicionar validates_attachment_content_type no modelo
Trilhos 3
Trilhos 4
fonte
Verifique se o seu modelo de postagem fica assim ...
fonte
Também não consegui que nenhuma dessas soluções funcionasse. Tentei o Paperclip 3.1, mas meu aplicativo não podia continuar dizendo que minhas extensões de arquivo de imagem não eram aprovadas, mesmo sendo jpg.
Finalmente encontrei sucesso com a versão 3.5.1.
fonte