2012-11-24 112 views
0

我想多个文件上传由railcasts.com提出jquery文件上传。我也跟着考,但它似乎每次我刷新服务器,没有被看到和在下面的浏览器我得到这个Carrierwave文件上传

  • 谷歌:空白图标
  • 火狐:文本“/资产/

似乎没有我的文件夹中,我想我的图片是上传者将公共/上传/在被上传:图像标识

这里我的代码 上传

class AimageUploader < CarrierWave::Uploader::Base 

    include CarrierWave::RMagick 
    include Sprockets::Helpers::RailsHelper 
    include Sprockets::Helpers::IsolatedHelper 
    storage :file 
    def store_dir 
    "uploads/#{model.id}" 
    end 
    version :thumb do 
    process :resize_to_fill => [200, 200] 
    end 
    def extension_white_list 
    %w(jpg jpeg gif png) 
    end 
end 

查看

<div><%= image_tag(ad.aimage_url(:thumb)) %></div> 

我错过了一步?

型号

# == Schema Information 
# 
# Table name: ads 
# 
# id    :integer   not null, primary key 
# name    :string(255) 
# aimage   :string(255) 
# created_at  :datetime   not null 
# updated_at  :datetime   not null 
# advertisement_id :integer 
# 

class Ad < ActiveRecord::Base 
    attr_accessible :aimage, :advertisement_id, :name 
    mount_uploader :aimage, AimageUploader 
end 

查看index.html.erb

<% @ads.each do |ad| %> 
    <div><%= ad.name %></div> 
    <%= image_tag(ad.aimage_url(:thumb)) if ad.aimage? %> 
    <div> 
    <%= link_to 'Show', ad %> 
    <%= link_to 'Edit', edit_ad_path(ad) %> 
    <%= link_to 'Destroy', ad, method: :delete, data: { confirm: 'Are you sure?' } %> 
    </div> 
<% end %> 
<br /> 

<%= form_for Ad.new do |f| %> 
    <div><%= f.label :aimage, "Upload advertisement:" %></div> 
    <div><%= f.file_field :aimage, multiple: true, name: "advertisement[aimage]" %></div> 
<% end %> 

控制器

class AdsController < ApplicationController 
    def index 
    @ads = Ad.all 
    end 
    def show 
    @ad = Ad.find(params[:id]) 
    end 
    def new 
    @ad = Ad.new 
    end 
    def edit 
    @ad = Ad.find(params[:id]) 
    end 
    def create 
    @ad = Ad.create(params[:ad]) 
    if @ad.save 
     flash[:notice] = "Successfully created advertisement." 
     redirect_to root_url 
    else 
     render :action => 'new' 
    end 
    end 
    def destroy 
    @ad = Ad.find(params[:id]) 
    @ad.destroy 
    end 
end 

的Javascript ads.js.coffee

jQuery -> 
    $('#new_ad').fileupload() 

给我看起来一切都好!

回答

1

是你的上传器安装在你的模型上?如果没有,试试这个

mount_uploader :image, AimageUploader 

,并在您看来,设置多个选项

<%= f.file_field :image, multiple: true, name: "model_name[image]" %> 
+0

我会告诉你我的代码! – Jseb

0

我建议你使用paperclip

创建一个模式叫相关图片如下:

class Image < ActiveRecord::Base 
    has_attached_file :file 
end 

让我们假设用户模式将有多个图片:

class User < ActiveRecord::Base 
    has_many :images 
end 

你可以有不同的image_controller处理您的文件上传

+1

虽然这种联系可以回答这个问题,最好是在这里有答案的关键部位和提供链接供参考。如果链接页面更改,则仅链接答案可能会失效。 – Nikhil

+0

回形针的事情是它不允许多个文件上传,因此我改为载波 – Jseb

+0

你可以使用简单的JQuery来允许多个文件上传。 – dealer