업로드 된 파일에서 original_filename 및 기타 내용을 가져 오려고합니다.업로드 된 파일에서 데이터 가져 오기
뷰의 코드는 다음과 같습니다
<%= form_for(@datafile, url: user_data_files_path) do |f| %>
<%= f.file_field :data%>
<%= f.submit "Upload file", class: "btn btn-large btn-primary" %>
<% end %>
디버그 콘솔에서 PARAMS 값은 다음과 같습니다
{"utf8"=>"✓",
"authenticity_token"=>"Z4suAyN3zOpz1qBKllaDs3L4flz6Rm6HnN0CIdJvmcE=",
"data_file"=>{"data"=>#<ActionDispatch::Http::UploadedFile:0x007ff46b74e390 @tempfile=#<Tempfile:/var/folders/gf/lft827zj55b5wdj3208vpsy40000gn/T/RackMultipart20130803-635-q6wtb6>,
@original_filename="application.html.erb",
@content_type="application/octet-stream",
@headers="Content-Disposition: form-data; name=\"data_file[data]\"; filename=\"application.html.erb\"\r\nContent-Type: application/octet-stream\r\n">},
"commit"=>"Upload file",
"user_id"=>"1"}
나는 나의 컨트롤러, original_filename 및 데이터 등을 검색하기 위해 노력하고있어 내가 가진 :
def create
@datafile = DataFile.new
uploaded_io = params[:data_file]
flash[:error]= '' + uploaded_io[:@original_filename]
redirect_to new_user_data_file_url
end
하지만 오류가 발생합니다 : no implicit conversion of nil into String
을 01,238,546,166에서행. 내가 통해 대한 액세스를 시도 :
uploaded_io[:original_filename]
나에게 같은 오류를 제공
, 또는
uploaded_io.original_filename
내가 NoMethodError
를 얻을 내가 볼 이상한 것은 그렇게, flash[:error]= '' + uploaded_io.to_s
이 나에게 data_file에 해시를 준다이다 .. 나는 무슨 일이 일어나고 있는지 이해하지 못한다.
누군가이 문제를 해결할 수 있도록 도와 줄 수 있습니까?
매우 도움이됩니다. 감사합니다. – skwidbreth