Ten błąd pojawia się, gdy próbuję przesłać za pomocą spinacza do papieru z moją aplikacją do blogowania w Railsach. Nie jestem pewien, do czego się odnosi, gdy mówi „MissingRequiredValidatorError”. Pomyślałem, że aktualizując post_params i podając mu: image będzie dobrze, ponieważ zarówno tworzenie, jak i aktualizacja używają post_params
Paperclip::Errors::MissingRequiredValidatorError in PostsController#create
Paperclip::Errors::MissingRequiredValidatorError
Extracted source (around line #30):
def create
@post = Post.new(post_params)
To jest mój post_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
i to jest mój pomocnik postów
module PostsHelper
def post_params
params.require(:post).permit(:title, :body, :tag_list, :image)
end
end
Daj mi znać, czy mogę uzupełnić dodatkowe materiały, które pomogą mi pomóc.
validates_attachment :image, presence: true, content_type: { content_type: ["image/jpg", "image/jpeg", "image/png"] }
presence: true
walidacja nie jest obowiązkowa, więc wykluczyłem tę część.do_not_validate_attachment_file_type
. Jak ujął to Rdocs: Dzięki raportowi Egora Homakova podjęliśmy kroki, aby zapobiec fałszowaniu typów treści i uzyskiwaniu danych, których nie spodziewałeś się na twoim serwerze.Po prostu włóż swój model:
https://github.com/thoughtbot/paperclip
źródło
Konieczne jest dodanie typu validates_attachment_content_content w modelu
Szyny 3
Szyny 4
źródło
Upewnij się, że Twój model postu wygląda tak ...
źródło
Nie mogłem też uruchomić żadnego z tych rozwiązań. Próbowałem Paperclip 3.1, ale nie mogłem wtedy powiedzieć, że moje rozszerzenia plików graficznych nie zostały zatwierdzone, nawet jeśli były w formacie jpg.
W końcu znalazłem sukces z wersją 3.5.1.
źródło