Problem z przesuwaniem spinacza w Railsach 4 - niepowodzenie w ForbiddenAttributesError (silne sprawdzanie poprawności parametrów). Miej najnowszy klejnot spinacza i najnowsze szyny 4 klejnoty.Spinacz w szynach 4 - Atrybuty zabronione o silnych parametrach
Mam modelu "Image" z załączonym plikiem "upload" w modelu
has_attached_file :upload, :styles => { :review => ["1000x1200>", :png], :thumb => ["100x100>", :png]}, :default_url => "/images/:style/missing.png"
Model została stworzona za pomocą rusztowania, i dodałem migracje spinacza. Formularz częściowy został zaktualizowany do korzystania
f.file_field :upload
forma generuje co wydaje się być typowy zestaw spinacza params, z param obrazu zawierającego przesyłanie. Przechodzę również parametr transaction_id w modelu obrazu, więc powinno być dozwolone. Ale to wszystko - obraz i identyfikator transakcji.
Spodziewałem się, aby móc napisać następujących w moim kontrolera do białej mój post - ale nie powiodło się:
def image_params
params.require(:image).permit(:transaction_id, :upload)
end
Więc mam bardziej wyraźne - ale to nie powiodło też:
def image_params
params.require(:image).permit(:transaction_id, :upload => [:tempfile, :original_filename, :content_type, :headers])
end
Jestem trochę sfrustrowany tym, że Rails 4 nie pokazuje mi, co ForbiddenAttributesError zawodzi w środowisku programistycznym - powinien pokazywać błąd, ale tak nie jest - byłby to łatwa łatka ułatwiająca rozwój. A może wszyscy inni dostają coś, czego mi brakuje! Wielkie dzięki za pomoc.
Co w końcu wprowadziłeś w swoim params.permit(), aby to zadziałało? – adamyonk
w moim przypadku miałem model "Image" z załącznikiem do spinacza "image_file". Migracja spinacza tworzy kilka kolumn w db, takich jak image_file_file_name itp., Ale wszystko, co musisz zrobić, to params.require (: image) .permit (: image_file), aby umożliwić spinaczowi działanie magii. – Eskim0
Dziękuję bardzo! To nie jest intuicyjne, ale działa :) – duhaime