У меня есть модель института, которая имеет атрибут изображения. Я использую несущую для загрузки изображений.Невозможно добавить изображения с помощью несущей волны в Devise resistration
class Institute < ActiveRecord::Base
mount_uploader :picture, PictureUploader
end
PictureUploader для carrierwave
class PictureUploader < CarrierWave::Uploader::Base
include CarrierWave::MiniMagick
process resize_to_limit: [400, 400]
storage :file
end
формы DEViSE для загрузки изображения
<%= form_for(resource, as: resource_name, url: registration_path(resource_name), html: { method: :put , multipart: true }) do |f| %>
<%= f.file_field :picture,accept: 'image/jpeg,image/gif,image/png' %>
<% end %>
миграции
add_column :institutes, :picture, :string
Сильные параметры обрабатываются в контроллере приложения с
class Institute::ParameterSanitizer < Devise::ParameterSanitizer
def sign_up
default_params.permit(:email,:password,:password_confirmation,:picture)
end
end
Но когда я его сохраню, изображение не сохраняется. Я понятия не имею, где это происходит. Атрибут изображения сохраняется. но
institute.picture.url => nil
Я долгое время проводил это, но не могу понять, почему это происходит. Есть ли способ отладки? Ожидание некоторых решений. Спасибо ..
Started PUT "/institutes" for 127.0.0.1 at 2015-10-25 00:06:27 +0530
Processing by Devise::RegistrationsController#update as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"EoILK8UjrjjLfyxnFu6ozlqmfHDb/D9fp7CTmLHEjjr5i9h9ZaHGrkG4e5WUhVHMc/jirgu7+vSyH+bRrqWRAg==", "institute"=>{"email"=>"[email protected]", "name"=>"RajeevIn", "phone_no"=>"555555", "address"=>"", "description"=>"", "picture"=>#<ActionDispatch::Http::UploadedFile:0x00000003e34178 @tempfile=#<Tempfile:/tmp/RackMultipart20151025-28776-o2ywzl.jpg>, @original_filename="12redroses_silk.jpg", @content_type="image/jpeg", @headers="Content-Disposition: form-data; name=\"institute[picture]\"; filename=\"12redroses_silk.jpg\"\r\nContent-Type: image/jpeg\r\n">, "password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]", "current_password"=>"[FILTERED]"}, "commit"=>"Update"}
Institute Load (0.6ms) SELECT "institutes".* FROM "institutes" WHERE "institutes"."id" = $1 ORDER BY "institutes"."id" ASC LIMIT 1 [["id", 1]]
Institute Load (0.4ms) SELECT "institutes".* FROM "institutes" WHERE "institutes"."id" = $1 LIMIT 1 [["id", 1]]
Unpermitted parameters: name, phone_no, address, description, picture
(0.2ms) BEGIN
(0.2ms) COMMIT
institute.picture?
метод, предоставляемый carrierwave дает false
ложна, даже если institue.picture
существует.
некоторые бревна рельсы, пожалуйста? – CuriousMind
бревна, добавленные выше. – raj