【发布时间】:2016-03-12 01:28:49
【问题描述】:
我对carrierwave gem 有疑问。 Extension_whitelist 似乎不起作用。
def extension_whitelist
%w(csv)
end
我不知道为什么它不起作用。我导入的文件类型无关紧要,它永远不会引发错误。 这是我的其余代码:
class AttachmentUploader < CarrierWave::Uploader::Base
storage :file
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
def extension_whitelist
%w(csv)
end
end
和控制器(基本上清晰的带有格式化和响应的脚手架)
class PackagesController < ApplicationController
before_action :set_package, only: [:show, :edit, :update, :destroy]
# GET /packages
# GET /packages.json
def index
@packages = Package.all
end
# GET /packages/1
# GET /packages/1.json
def show
end
# GET /packages/new
def new
@package = Package.new
end
# GET /packages/1/edit
def edit
end
# POST /packages
# POST /packages.json
def create
@package = Package.new(package_params)
respond_to do |format|
if @package.save
format.html { redirect_to @package, notice: 'Package was successfully created.' }
format.json { render :show, status: :created, location: @package }
else
format.html { render :new }
format.json { render json: @package.errors, status: :unprocessable_entity }
end
end
end
# PATCH/PUT /packages/1
# PATCH/PUT /packages/1.json
def update
respond_to do |format|
if @package.update(package_params)
format.html { redirect_to @package, notice: 'Package was successfully updated.' }
format.json { render :show, status: :ok, location: @package }
else
format.html { render :edit }
format.json { render json: @package.errors, status: :unprocessable_entity }
end
end
end
# DELETE /packages/1
# DELETE /packages/1.json
def destroy
@package.destroy
respond_to do |format|
format.html { redirect_to packages_url, notice: 'Package was successfully destroyed.' }
format.json { head :no_content }
end
end
private
# Use callbacks to share common setup or constraints between actions.
def set_package
@package = Package.find(params[:id])
end
# Never trust parameters from the scary internet, only allow the white list through.
def package_params
params.require(:package).permit(:name, :description, :category_id)
end
end
搜索我也看过的答案:
def content_type_whitelist
/csv\//
end
但它也不起作用。 任何想法可能是什么问题? 另外,还有其他简单的方法可以实现吗?
@EDIT 问题已解决:我很久以前报告过这个错误,最近已修复。
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-4 rubygems