在数据库中上传文件和存储URL的正确方法

时间:2014-09-26 19:31:44

标签: ruby-on-rails ruby file-upload

这是我第一天使用Rails,甚至是第一天使用Ruby编程,所以我不确定Ruby社区使用的很多实践。

我正在尝试将此文件上传并将给定文件存储在一个文件夹中,并将该文件的路径存储在数据库中。我所拥有的工作完全正常,但我不确定我是否会打一些大的no-nos。

我最关心的是我这样做的地方:

params[:config][:url] = File.join("public/data/configs", params[:config][:file].original_filename)

以下是create方法的完整代码:

params[:config][:url] = File.join("public/data/configs", params[:config][:file].original_filename)

    @map = Map.find(params[:map_id])
    @config = @map.map_config.new(map_config_params)

    if @config.valid?
        File.open(params[:config][:url], "wb") { |f| f.write(params[:config][:file].read) }
        @config.save
        redirect_to map_path(@map)
    else
        render 'new'
    end

map_config_params方法:

private
    def map_config_params
        params.require(:config).permit(:name, :url)
    end

1 个答案:

答案 0 :(得分:0)

为什么不使用载波或回形针上传文件。以下是宝石的链接

  1. Carrier Wave
  2. Paperclip