У меня есть форма загрузки файла, которая при отправке направляется в действие parse_upload. Однако, когда я пытаюсь извлечь файл или какие-либо атрибуты, которые входят вместе с объектом загрузки файла (original_filename, content_type), я получаю сообщение об ошибке. Файл, если я правильно понимаю, должен быть сохранен в #{Rails.root}/public/uploads under the same name as the original file.file_field в форме, не загружающей ничего
Когда я бег через мое приложение, я получаю ошибку в моем parse_upload действий констатирует NoMethodError
NoMethodError in RevenueModelsController#parse_upload
undefined method `original_filename' for "rails_upload_test.xlsx":String
... моя загрузка не содержит эти методы? Файл (и каталог загрузки) также не существует. Пожалуйста, помогите, я перечислил все соответствующие файлы ниже:
routes.rb
resources :revenue_models do
get 'upload', :on => :collection
end
match 'revenue_models/upload' => 'revenue_models#parse_upload', :via => :post
root :to => "home#index"
действия регулятора:
# UPLOAD create instance variable, call onto upload form, and route to parse_upload action
def upload
@uploaded_doc = { :workbook => RubyXL::Parser.new }
end
# Parse the uploaded file
def parse_upload
file_name = (params[:uploaded_doc][:workbook]).original_filename
end
upload.html.erb - форма загрузки подчиняется действию parse_upload
<%= form_tag(:url => {:controller => "revenue_models", :action => parse_upload_revenue_models_path}, :html => {:method => "put", :multipart => true}) do %>
<%= file_field(:uploaded_doc, :workbook) %>
<%= submit_tag("Upload File") %>
<% end %>
попробуйте изменить Params [: uploaded_doc] [:] учебное пособие для @uploaded_doc ... или parse_upload отдельного действия? –
parse_upload - отдельное действие. моя форма upload.html.erb отправляется в действие parse_upload, но не превращается в объект загруженного файла – Utopia025