Ruby on rails 可能是糟糕的rails设计-我需要一些建议,使定制的控制器更像CRUD

Ruby on rails 可能是糟糕的rails设计-我需要一些建议,使定制的控制器更像CRUD,ruby-on-rails,ruby,Ruby On Rails,Ruby,一般来说,我在rails和web开发方面几乎没有经验。我认为我在这里所做的是我一直在学习的糟糕的设计。我不认为我在使用rails的方式来做这件事,因为这是一个上传文件的功能,我如何才能使它像熟悉的CRUD风格。我创建了一个名为FileUploadController的自定义控制器。我还有一个名为FileProcessorService 用户将导航到上传页面,该页面具有多部分表单按钮以选择和上传文件。import操作是在单击多部分表单上的提交按钮时调用的操作 <div class="row"

一般来说,我在rails和web开发方面几乎没有经验。我认为我在这里所做的是我一直在学习的糟糕的设计。我不认为我在使用rails的方式来做这件事,因为这是一个上传文件的功能,我如何才能使它像熟悉的CRUD风格。我创建了一个名为
FileUploadController
的自定义控制器。我还有一个名为
FileProcessorService
用户将导航到
上传
页面,该页面具有多部分表单按钮以选择和上传文件。
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 %>

上载文件
“按钮”,id:“上传按钮”)%>

这个能用栏杆围起来吗?我怎样才能使这个设计像一个熟悉的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
class FileUploadController
您是否希望他们在上传文件后也能查看该文件?可能会将文件更改为其他文件或将其删除?有两件事:1)
initialize\u处理器
应位于
protected
部分,因为它只是一个帮助程序,而不是一个操作。2) 如果您将导入重命名为“create”,您会变得更粗糙:)是的,我希望用户能够看到文件的内容(顺便说一句,csv文件)。但我想保持在上传表单所在的页面上,并在上传文件时根据某些列显示一些总计数和聚合。是否可以将该文件视为模型对象?在设计这个东西的时候,我应该这样想吗?因为在文件名被存储到数据库之前,它不是真正的crud。每个用户都可以关联到多个文件。