나는 Railscast tutorial for Carrierwave uploads을 따르고 있으며 동일한 파일을 설정했습니다. 콘솔을 통해 파일을 업로드해도 업로드가 올바르게 작동하지만 양식이 올바로 게시되지 않는 것 같습니다.반송파가 POST에 표시되지 않습니다.
<%= f.label :receipt %><br>
<%= f.file_field :receipt %>
레일 (4)이 자동으로 양식에 enctype="multipart/form-data"
태그를 포함 않습니다
나는 포함 내 기본적인 형태를 가지고있다.
양식을 제출하면 서버 로그를 살펴 봅니다. 업로드가 매개 변수에 표시 :
"receipt"=>#<ActionDispatch::Http::UploadedFile:0x007fcb25c624e0 @tempfile=#<Tempfile:/var/folders/ty/yks2xd9n76z9p49qzprvt1900000gn/T/RackMultipart20130903-53712-17zblz4>,
@original_filename="Avatar.jpg",
@content_type="image/jpeg",
@headers="Content-Disposition: form-data; name=\"expense[receipt]\"; filename=\"Avatar.jpg\"\r\nContent-Type: image/jpeg\r\n">},
그러나, INSERT 문이 영수증 필드 또는 파일에 대한 언급이 포함되어 있지 않습니다. 오류가 없습니다. 이 파일은 Carrierwave에서 지정한 디렉토리에 업로드되지 않습니다.
여기에 무엇이 잘못 될지에 대한 아이디어가 있습니까? 이 내용은 this answer과 중복되지 않으며 jQuery Mobile의 문제입니다. 나는 무슨 일이 벌어지고 있는지 정말 잘 모르겠다.
편집 :뿐만 아니라 아마 포함해야 내 모델 :
class ReceiptUploader < CarrierWave::Uploader::Base
storage :file
def store_dir
"receipts"
end
end
편집 : 2 :
class Expense < ActiveRecord::Base
mount_uploader :receipt, ReceiptUploader
end
나는 Carrierwave에 의해 생성뿐만 아니라 주식 업 로더 클래스를 가지고을 여기에 비용을 창출하기위한 제 컨트롤러입니다 :
def new
@expense = Expense.new
end
def create
@expense = Expense.new(expense_params)
respond_to do |format|
if @expense.save
format.html { redirect_to @expense, notice: 'Expense was successfully created.' }
format.json { render action: 'show', status: :created, location: @expense }
else
format.html { render action: 'new' }
format.json { render json: @expense.errors, status: :unprocessable_entity }
end
end
end
컨트롤러 방법은 어떻게 생겼습니까? 비용을 지불하기 전에 매개 변수가 걸러 지는지 확인하기 위해 [pry] (https://github.com/rweng/pry-rails)를 사용해 보았습니까? – Taavo
new와 create에 대한 원래 컨트롤러를 내 컨트롤러 메소드로 업데이트했습니다. 주식 발판 생성 코드입니다. 다른 한편으로는, 나는 설치하려고 노력하지만 나는 그것을 가지고 무엇을 찾고 있어야하는지 확신하지 못한다. –
기본적으로 expense_params [: receipt]에 예상 값이 있는지 알고 싶습니다. 그것을 허용해야 할 수도 있습니다. – Taavo