如何添加验证以在Rails应用程序中重新归档?

ipatch

我创建了Rails应用程序,因此可以使用API​​部分。我可以使用curl成功地将文件上传到rails应用程序的数据库,但是我不知道如何将文件类型/内容类型限制为仅CSV。

csv_file.rb#模型

class CsvFile < ActiveRecord::Base
    # attachment :content_type => "text/csv"
    # http://ryanbigg.com/2009/04/how-rails-works-2-mime-types-respond_to/
    attachment :csv, extension: "csv", content_type: "text/csv"
end

csv_files.rb#控制器

class API::V1::CsvFilesController < ApplicationController

  # see http://stackoverflow.com/questions/15040964/ for explanation
  skip_before_filter :verify_authenticity_token

  def index
    @csv_files = CsvFile.all
    if @csv_files
      render json: @csv_files,
        # each_serializer: PictureSerializer,
        root: "csv_files"
    else
      @error = Error.new(text: "404 Not found",
                          status: 404,
                          url: request.url,
                          method: request.method)
      render json: @error.serializer
    end 
  end

  def show
    if @csv_file
      render json: @csv_file,
              # serializer: PictureSerializer,
              root: "csv_file"
    else
      @error = Error.new(text: "404 Not found",
                          status: 404,
                          url: request.url,
                          method: request.method)
      render json: @error.serializer
    end
  end

  # POST /csv_files.json
  def create
    @csv_file = CsvFile.new(csv_params)

    if @csv_file.save
      render json: @csv_file,
        # serializer: PictureSerializer, 
        meta: { status: 201,
          message: "201 Created"},
          root: "csv_file"
    else
      @error = Error.new(text: "500 Server Error",
        status: 500,
        url: request.url,
        method: request.method)
      render :json => @error.serializer
    end
  end

  def update
  end

  def delete
  end

  private

  def csv_params

  end
end
ipatch

因此最终出现了两个问题。

首先,控制器中的强参数应如下所示:

def csv_params
    params.permit(:csv_file)
end

其次,我需要像这样在迁移中添加一列,

add_column :csv_files, :csv_file_id, :string

最后,我能够修改csv_file.rb模型文件并添加以下行。

attachment :csv_file, extension: "csv"

目前,只能将扩展名为的文件.csv上传到API。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Rails应用程序中添加Timer?

来自分类Dev

如何在Yii-2应用程序中添加验证码?

来自分类Dev

如何验证Rails应用程序中标题的长度?

来自分类Dev

Rails 4:如何在应用程序中的所有模型中添加列?

来自分类Dev

如何归档包含自定义框架的应用程序?

来自分类Dev

如何在Rails 4.2应用程序中添加中间件

来自分类Dev

如何在Rails的应用程序中实现stackoverflow的“添加评论”之类的功能?

来自分类Dev

Rails应用程序-如何在API获取请求中添加查询参数?

来自分类Dev

如何在仅API的Rails应用程序中添加助手

来自分类Dev

如何在Qt中重新启动应用程序?

来自分类Dev

如何在JavaFX中重新加载应用程序?

来自分类Dev

如何从片段重新启动Android中的应用程序

来自分类Dev

Azure移动应用程序中的应用程序身份验证。如何?

来自分类Dev

您如何验证从主应用程序启动的应用程序中的令牌是否正确?

来自分类Dev

重新启动应用程序时,emberfire 如何维护身份验证会话?

来自分类Dev

如何重新激活应用程序的GUI?

来自分类Dev

如何重新激活应用程序的GUI?

来自分类Dev

如何在闪亮的应用程序中动态添加inputText?

来自分类Dev

如何在GWT应用程序中添加静态资源?

来自分类Dev

如何在D应用程序中添加图标?

来自分类Dev

如何启动Azure VM中添加的应用程序

来自分类Dev

如何在整个应用程序中添加彩色胶片

来自分类Dev

如何在Android固件中添加应用程序?

来自分类Dev

如何在应用程序中添加asyncTask代码?

来自分类Dev

如何在Shopify公共应用程序中添加JavaScript

来自分类Dev

如何在“应用程序”菜单中添加项目?

来自分类Dev

如何在QT应用程序中添加新表格

来自分类Dev

如何在Arch Linux中添加启动应用程序

来自分类Dev

如何在启动应用程序中添加PCloud?

Related 相关文章

  1. 1

    如何在Rails应用程序中添加Timer?

  2. 2

    如何在Yii-2应用程序中添加验证码?

  3. 3

    如何验证Rails应用程序中标题的长度?

  4. 4

    Rails 4:如何在应用程序中的所有模型中添加列?

  5. 5

    如何归档包含自定义框架的应用程序?

  6. 6

    如何在Rails 4.2应用程序中添加中间件

  7. 7

    如何在Rails的应用程序中实现stackoverflow的“添加评论”之类的功能?

  8. 8

    Rails应用程序-如何在API获取请求中添加查询参数?

  9. 9

    如何在仅API的Rails应用程序中添加助手

  10. 10

    如何在Qt中重新启动应用程序?

  11. 11

    如何在JavaFX中重新加载应用程序?

  12. 12

    如何从片段重新启动Android中的应用程序

  13. 13

    Azure移动应用程序中的应用程序身份验证。如何?

  14. 14

    您如何验证从主应用程序启动的应用程序中的令牌是否正确?

  15. 15

    重新启动应用程序时,emberfire 如何维护身份验证会话?

  16. 16

    如何重新激活应用程序的GUI?

  17. 17

    如何重新激活应用程序的GUI?

  18. 18

    如何在闪亮的应用程序中动态添加inputText?

  19. 19

    如何在GWT应用程序中添加静态资源?

  20. 20

    如何在D应用程序中添加图标?

  21. 21

    如何启动Azure VM中添加的应用程序

  22. 22

    如何在整个应用程序中添加彩色胶片

  23. 23

    如何在Android固件中添加应用程序?

  24. 24

    如何在应用程序中添加asyncTask代码?

  25. 25

    如何在Shopify公共应用程序中添加JavaScript

  26. 26

    如何在“应用程序”菜单中添加项目?

  27. 27

    如何在QT应用程序中添加新表格

  28. 28

    如何在Arch Linux中添加启动应用程序

  29. 29

    如何在启动应用程序中添加PCloud?

热门标签

归档