我一般在rails和web开发方面经验不足。我认为我所拥有的是来自我所研究的糟糕设计。我不认为我使用rails方式这样做,因为这是一个上传文件功能,我怎么能像熟悉的CRUD风格一样。我创建了一个名为FileUploadController
的自定义控制器。我还有一个名为FileProcessorService
的自定义类
用户将导航到具有多部分表单按钮的upload
页面,以选择并上载文件。 import
操作是单击多部分表单上的提交按钮时调用的内容。
<div class="row">
<h1>Upload File</h1>
<%= form_tag({action: :import}, multipart: true) do %>
<%= file_field_tag :file %>
<%= submit_tag("Upload and Tabulate", :class => 'button', id: 'upload_button') %>
<% end %>
这可以归化吗?如何使这个设计像熟悉的CRUD一样控制器?由于这是上传文件功能,对我来说如何做到这一点并不是很明显。提前谢谢。
class FileUploadController < ApplicationController
def index
end
def import
initialize_processor(params[:file])
if (@file_sample != nil || @index_name != nil) then
render 'index'
end
end
def upload
end
def initialize_processor(file_in)
File.open(Rails.root.join('public', 'uploads', file_in.original_filename), 'wb') do |file|
file.write(file_in.read)
end
@file_processor = FileProcessorService.new(file_in)
@file_sample = @file_processor.present_data_sample()
@index_name = @file_processor.load_index()
end
end