Mam model Artwork z atrybutem obrazu, w którym zamontowano Carrierwave. Pisząc specyfikacje kontrolera, zdałem sobie sprawę, że pole obrazu pozostaje puste, nawet gdy myślałem, że przechodzę przez obiekt pliku.Jakie parametry muszę przekazać w kontrolerze do zamontowanego modelu Carrierwave?
Moje informacje na temat debugowania informują mnie, że problem dotyczy atrybutu obrazu, na którym mam zainstalowany CarrierWall, a nie czegoś innego. Nie sądzę, żebym przekazywał potrzebne informacje, ale nie wiem, co spróbować.
Oto działanie regulatora, z niektórych informacji debugowania w celu zidentyfikowania problemu:
def create
@artwork = @imageable.artworks.new(params[:artwork])
logger.debug "Artwork should be valid: #{@artwork.valid?}"
logger.debug "Errors: #{@artwork.errors.full_messages}"
if @artwork.save
flash[:success] = "Artwork created."
redirect_to [@imageable, :artworks]
else
flash[:error] = "Artwork not created."
render :new
end
end
W dzienniku testowym Widzę to po uruchomieniu moje specyfikacje:
Processing by ArtworksController#create as HTML
Parameters: {"artwork"=>{"image"=>"#<File:0x4515480>", "title"=>"Portrait","year"=>"2012", "surface_type"=>"canvas", "size"=>"10 x 10", "price"=>"100.0", "for_sale"=>false, "prints_available"=>false, "notes"=>"extra notes"}, "file"=>"#<File:0x46c6938>", "originals_gallery_id"=>"1"}
[1m[36mOriginalsGallery Load (0.0ms)[0m [1mSELECT "originals_galleries".* FROM "originals_galleries" WHERE "originals_galleries"."id" = ? LIMIT 1[0m [["id", "1"]]
Artwork should be valid: false
Errors: ["Image can't be blank"]
Każdy myśli, proszę? Czy istnieje kontroler, którego zapominam?
Utknął próbując rozwiązać ten sam problem. Stukrotne dzięki! – wyclin