在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/網(wǎng)絡(luò)安全/ Rails 5 本地搭建網(wǎng)站,Carrierwave-upyun 不能上傳圖片到

Rails 5 本地搭建網(wǎng)站,Carrierwave-upyun 不能上傳圖片到又拍云?

請(qǐng)教大家: 我是在本地用rails搭建網(wǎng)站,現(xiàn)在想在本地能把圖片上傳到又拍云,網(wǎng)站一些代碼如下。但是上傳圖片后,跳轉(zhuǎn)到show.html.erb, 圖片的地址類(lèi)似于:(http://sssss-imgs.test.upcdn....),圖片打不開(kāi),好像圖片沒(méi)有上傳到又拍云的服務(wù)器。請(qǐng)問(wèn)我這是哪里出現(xiàn)了錯(cuò)誤?請(qǐng)大家指導(dǎo),非常感謝!!

1. 部分 Gemfile :

gem 'carrierwave', '~> 1.2', '>= 1.2.2'
gem 'carrierwave-upyun', '~> 0.2.2'

2. config/initializers/carrierwave.rb : (這個(gè)是手動(dòng)新增加的)

require "carrierwave"
require "carrierwave/validations/active_model"
CarrierWave.configure do |config|
  config.storage = :upyun
  config.remove_previously_stored_files_after_update = false
  config.upyun_username = "sssss"
  config.upyun_password = "ssssss123"
  config.upyun_bucket = "sssss-imgs"
  config.upyun_bucket_domain = "http://sssss-imgs.test.upcdn.net"
  config.upyun_api_host = "http://v0.api.upyun.com"
end

3. 基本上傳組件 BaseUploader :

IMAGE_UPLOADER_ALLOW_IMAGE_VERSION_NAMES = %(320 640 800)
class BaseUploader < CarrierWave::Uploader::Base
  storage :upyun
  def store_dir
    "#{model.class.to_s.underscore}/#{mounted_as}"
  end

  def extension_white_list
    %w[jpg jpeg gif png svg]
  end


  def url(version_name = "")
    @url ||= super({})
    version_name = version_name.to_s
    return @url if version_name.blank?
    if not version_name.in?(IMAGE_UPLOADER_ALLOW_IMAGE_VERSION_NAMES)
      raise "ImageUploader version_name:#{version_name} not allow."
    end
    [@url,version_name].join("!") 
  end

end

4. 圖片上傳組件 ImgUploader :

class ImageUploader < BaseUploader

  def filename
    if original_filename
      @name||=Digest::MD5.hexdigest(File.dirname(current_path))
      "#{@name}.#{file.extension}"
    end
  end
end

5. model img.rb :

class Img < ActiveRecord::Base
  mount_uploader :img_name, ImageUploader
end

6. imgs_controller.rb :

class ImgsController < ApplicationController

  def index
    @imgs = Img.all
  end

  def show
    @img = Img.find(params[:id])
  end

  def new
    @img = Img.new
  end

  def create
    @img = Img.new(img_params)
    @img.save
    redirect_to @img
  end

  def destroy
    @img.destroy
    render :index
  end

  private

  def img_params
    params.require(:img).permit!
  end
end

7. 上傳圖片和圖片顯示頁(yè)面 :

## new.html.erb
<%= form_for @img do |f| %>
  <%= f.file_field :img_name %>
  <%= f.submit "上傳" %>
<% end %>

## show.html.erb

<%= image_tag(@img.img_name.url("320")) %>

8. img的migration

class CreateImgs < ActiveRecord::Migration[5.2]
  def change
    create_table :imgs do |t|
      t.string :img_name
      t.timestamps null: false
    end
  end
end

請(qǐng)路過(guò)的大佬,不吝指教。非常感謝??!

回答
編輯回答
初念

還是千牛云好用

2018年7月25日 06:51